Commit Graph

247 Commits

Author SHA1 Message Date
Nathan McCauley f239757dfd keystore aliasing, take 2
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-07-20 10:58:20 -07:00
Nathan McCauley 5df1eb21f3 keystore aliasing, take 1
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-07-20 10:58:20 -07:00
Nathan McCauley 23b7e8c6af Update keyfilestore to use passwordRetriever
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-07-20 10:58:16 -07:00
David Lawrence 7db33797a8 fixing timestamp errors on list
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-20 10:35:40 -07:00
David Lawrence d453c6548d client side of multi TUF file atomic update
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-17 17:48:06 -07:00
Diogo Mónica 552ccf411a Merge pull request #80 from docker/test-publish
Add a unit test for publish
2015-07-17 16:53:45 -07:00
Aaron Lehmann afc331b930 Add a unit test for publish
This instantiates a temporary server, publishes some targets to it, and
makes sure we can pull back the correct targets from the server.

Also fixes a few problems with the client unit tests, error reporting in
the client, and logging in the server.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-17 16:27:31 -07:00
Diogo Monica 58e6544d0a Adding Cert retrieval by common name, and renaming KeyID to CertID
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-17 14:28:30 -07:00
Nathan McCauley 88e7346782 Merge pull request #71 from docker/unify-cryptoservice
Unify cryptoservice
2015-07-17 11:10:59 -07:00
Aaron Lehmann 125d72fd77 Big refactor to make signer use cryptoservices
- Add MemoryFileStore, a partial FileStore implementation that doesn't
  persist on disk.

- Create a KeyStore interface that allows pluggable key store types. Use
  this interface in the cryptoservice implementation.

- Add KeyMemoryStore, which uses MemoryFileStore to provide a KeyStore.

- Add GetKey and DeleteKey functions to cryptoservice.CryptoService.

- Refactor the hardware RSA signing service as a CryptoService.

- Replace custom ed25519 code with cryptoservice.CryptoService.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-17 09:33:19 -07:00
Richard Scothern e5d6180276 Enable remote signing service
Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2015-07-16 11:16:40 -07:00
Richard Scothern df18a541e2 Fix the staging deployment.
Add a service name and ephemeral ports to notary server.
Remove certs as TLS is terminated in the ELB.

Signed-off-by: Richard Scothern <richard.scothern@gmail.com>
2015-07-16 09:50:52 -07:00
Diogo Mónica 0ed6072a4a Merge pull request #67 from docker/adding-certs
Adding new certificates
2015-07-15 22:35:54 -07:00
Richard Scothern 8eafc998f7 Merge pull request #63 from endophage/fix_sql
fixing database queries
2015-07-15 22:33:48 -07:00
Diogo Monica 3debfbca10 Reissued all certs with correct SANs
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-15 21:42:24 -07:00
Diogo Monica ddfcd50471 Changing .pem to .crt everywhere
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-15 20:44:09 -07:00
Diogo Monica cdee810942 Changed notary-server to point at new certs
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-15 19:45:34 -07:00
Aaron Lehmann 167a07c894 Change notary-signer to use gotuf's key types
This causes notary-signer to use gotuf's Key interface instead of
defining its own redundant types.

We can go further with this in the future by removing the redundant
ED25519 implementation. This would be refactored into the cryptoservice
package, and notary-signer would be changed to use that package's
cryptoservice for key creation and signing operations.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-15 17:22:46 -07:00
David Lawrence 72d7d35221 fixing database queries
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-15 16:19:14 -07:00
Aaron Lehmann a16581ecc7 Move CryptoService and UnlockedCryptoService into a cryptoservice package
Move GenRootKey and GetRootCryptoService to KeyStoreManager, now that
they don't depend on client-specific types.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-14 18:39:38 -07:00
Aaron Lehmann d5c7c40955 Introduce a KeyStoreManager to abstract management of root and non-root key storage
This structure encapsulates what used to be "rootKeyStore" and
"privKeyStore". These are being moved out of NotaryRepository, so that
operations like listing keys, importing keys, and exporting keys aren't
tied to a NotaryRepository structure.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-14 18:39:38 -07:00
Diogo Monica 321b155596 Godeps update, removed dependency on rufus
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-14 00:39:03 -07:00
Diogo Monica f03626a10e Refactored Rufus API
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-14 00:23:38 -07:00
Diogo Monica 9a4c2dc744 Initial copy of notary-signer
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-14 00:23:22 -07:00
Diogo Mónica 935b9a9366 Merge pull request #47 from docker/cryptoservice-refactor
Refactor crypto service
2015-07-13 15:29:59 -07:00
Aaron Lehmann e4704f9729 Update notary for removal of signed.Signer
We now deal with CryptoServices directly instead of passing around
Signers.

UnlockedSigner becomes UnlockedCryptoService because it no longer
contains a Signer.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-07-13 15:18:02 -07:00
David Lawrence da59198191 adding htpasswd auth to support the same set of mechanisms as distribution
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-13 14:17:24 -07:00
Diogo Monica 765a2cf661 Refactor crypto service
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-13 13:53:47 -07:00
Diogo Monica ba94fdd19d Signature/key types are now used correcty and are represented by constants.
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-12 22:21:29 -07:00
Diogo Monica 085c613527 Refactored fingerprint cert and added better debugging
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-12 22:21:29 -07:00
Diogo Monica 39482c2397 Working ECDSA implementation
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-12 22:21:29 -07:00
David Lawrence d1b09962f1 using roundtripper in notary client
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-10 10:02:38 -07:00
Diogo Mónica 436e02d390 Merge pull request #32 from dmcgowan/fix-default-loglevel
Fix default log level
2015-07-09 23:56:13 -07:00
Ian Duffy ed4454c9c9 Fix example configuration file given in README.md
The example configuration given in README.md is missing a comma character and doesn't form valid JSON.

This PR adds the comma as required.

Signed-off-by: Ian Duffy <ian@ianduffy.ie>
2015-07-10 04:35:02 +01:00
Diogo Monica 06a28c89ee Added root key creation if non-existing to notary
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-09 18:56:06 -07:00
Aaron Lehmann 082d4f3c7c Change NotaryRepository to honor the baseURL passed in
Remove "transport", because it's not used.

In the actual notary client, pass in a hard-coded URL for now (same one
previously hardcoded in getRemoteStore). In tests, create a trivial HTTP
server using net/http/httptest, which returns a timestamp.key file.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-09 17:58:33 -07:00
Diogo Monica 8c6de46aca Added list keys that ignores symlinks 2015-07-09 17:58:10 -07:00
David Lawrence 73ca456297 annotating Publish and making it accept a password retriever function
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-09 17:58:09 -07:00
David Lawrence 6bff14a679 refactoring NotaryClient out
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-09 17:58:09 -07:00
David Lawrence ebbb30b56c hold unlocked signer on repository
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-09 17:58:09 -07:00
David Lawrence c9ab3394de further publish updates, it pushes now, but doesn't sign roots correctly
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-09 17:58:09 -07:00
Diogo Monica f9f11e5781 Starting the key refactor; rename UnlockedRootKey
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-09 17:58:09 -07:00
David Lawrence 1d163650a3 changelist implementation
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)

Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-09 17:58:09 -07:00
David Lawrence 9d5e988586 working refactor
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-09 17:58:08 -07:00
Diogo Monica e66dc12eca More refactor 2015-07-09 17:58:08 -07:00
Diogo Monica 93f7d9911f Implementing ListTargets 2015-07-09 17:58:08 -07:00
Diogo Monica 30c0856266 Remove config from libnotary 2015-07-09 17:58:08 -07:00
Diogo Monica 1346296869 Initial libnotary refactor
Signed-off-by: Diogo Monica <diogo@docker.com>

Ported more functionality to libnotary
2015-07-09 17:57:48 -07:00
Derek McGowan 0f5f340d0c Fix default log level
Work around bug in viper configuration.
Viper will always use the default since it matches the whole key match first.
Setting the default to a map keeps the config file as the first matched item.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-07-07 11:55:49 -07:00
Diogo Monica d5cdeb93bb Adding EncryptedFileStore and changing interfaces
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-07-05 21:02:16 -07:00
Diogo Monica fd8471038c Added a keyfilestore with encrypted PEM support 2015-07-04 12:17:54 -07:00
David Lawrence 89379a728c adding timestamping and some general cleanup
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-07-03 15:38:09 -07:00
Diogo Mónica 66aec225f2 Merge pull request #8 from docker/validate_root
validate root file against cert store
2015-07-03 14:23:25 -07:00
Diogo Monica 1eb972a820 Changed FingerprintCert to return string; renamed kID fingerprint everywhere in notary
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-06-30 21:44:57 -07:00
Diogo Monica a0e63bcaeb Fixed verification to use exact match and fallback to CA + tests
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-06-30 19:38:52 -07:00
Diogo Monica cf3d7d4b52 Removed all references of GUN from filestore
Signed-off-by: Diogo Monica <diogo@docker.com>
2015-06-30 19:36:17 -07:00
Diogo Monica da7a1e67f5 Rebased off of master, fixed tests 2015-06-28 16:42:27 -07:00
David Lawrence cf2a819b21 validate root file against cert store 2015-06-28 16:35:24 -07:00
David Lawrence 913e2669c9 Merge pull request #16 from docker/mccauley/notary-readme
Initial cut of notary client README
2015-06-21 16:19:44 -07:00
Nathan McCauley ccfa3f44fd Initial cut of notary client README
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-06-21 16:18:39 -07:00
David Lawrence b0ee6f0c4e putting the same warning at the top of all the readmes.
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
2015-06-21 16:13:16 -07:00
David Lawrence 779d3b687e refactoring verify and switching os.Stderr to use logrus which is set to output on stderr 2015-06-21 16:07:29 -07:00
David Lawrence 5efc8c0549 Merge pull request #12 from docker/filestore-refactor
Major refactor the the FileStore
2015-06-21 15:45:24 -07:00
David Lawrence d7955d6b7a adding a little more to notary server readme 2015-06-21 14:54:27 -07:00
David Lawrence ffc135ace9 Merge pull request #9 from docker/notaryserver_readme
Notary Server README
2015-06-21 13:21:06 -07:00
David Lawrence cd8c17b5c3 filling in README for notary-server 2015-06-21 13:19:13 -07:00
Diogo Monica 09c9099fdf Adding ListGUN to allow listing of specific keys 2015-06-21 15:14:46 -04:00
Diogo Monica eb1da6d5c6 Added delete keys by GUN 2015-06-20 23:31:03 -04:00
Diogo Monica db847379df Major refactor the the FileStore 2015-06-20 23:04:34 -04:00
David Lawrence 73f9935ea1 renaming server/version to server/storage. version was a bad name I picked late at night 2015-06-20 19:16:20 -07:00
David Lawrence 989c821d59 validate root file against cert store 2015-06-20 17:03:38 -07:00
Diogo Mónica 6625f1fc86 Merge pull request #5 from docker/mccauley/error-checking
Add error checking
2015-06-20 16:57:26 -04:00
Nathan McCauley 9ee5299b86 Add error checking
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-06-20 13:01:56 -07:00
Diogo Monica ed0ba8c1bf Adding minor stdout cosmetic change 2015-06-19 15:12:20 -07:00
David Lawrence 6ebdbdca0e adding readmes for commands 2015-06-19 13:35:20 -07:00
David Lawrence 03fcba1c98 exist verify with 1 on fail and make size print correctly in cli output 2015-06-19 12:38:33 -07:00
David Lawrence c7a956bdbb updating cli output for tuf to say Trusted Collection rather than TUF Repository 2015-06-19 11:47:21 -07:00
Nathan McCauley 518d0a2702 Notary Server in server log messages
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-06-19 11:17:06 -07:00
Nathan McCauley e46a95227c rename vetinari to notary
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-06-19 11:01:19 -07:00
Nathan McCauley 3f9b5dd6f7 Remove double negative
Signed-off-by: Nathan McCauley <nathan.mccauley@docker.com>
2015-06-19 00:04:03 -07:00
Diogo Monica 7b86665cf8 Descriptions now use Trusted Collection everywhere 2015-06-18 21:44:54 -07:00
Diogo Monica 8da91369b8 Added confirmation for trust 2015-06-18 21:32:30 -07:00
Diogo Monica 21782098cb Initial implementation of verify 2015-06-18 20:43:02 -07:00
David Lawrence c9df04c4c0 remove actually working now 2015-06-18 19:44:33 -07:00
David Lawrence 06abf201c3 adding remove 2015-06-18 19:33:47 -07:00
David Lawrence 0ce1572c20 set logrus to stderr and refactor list/lookup 2015-06-18 19:09:34 -07:00
David Lawrence 91c1380070 list/lookup have empty output if they fail 2015-06-18 18:24:36 -07:00
Diogo Monica 6a7a08195e Rename push to publish 2015-06-18 17:19:42 -07:00
Diogo Monica 49819d239d Remove tuf from cmdline 2015-06-18 17:14:06 -07:00
Diogo Monica a353ee13e7 Merge branch 'demo' of github.com:docker/vetinari into demo 2015-06-18 15:13:29 -07:00
Diogo Monica d63649e54c Add root certificate to trusted store 2015-06-18 15:13:22 -07:00
David Lawrence bfe4d1e196 implementing lookup 2015-06-18 15:07:56 -07:00
Diogo Monica e98a25c94f Fixed Dockerfile and compose 2015-06-18 14:07:02 -07:00
Diogo Monica 1bef68654e Changed cryptoservice and rufus interface 2015-06-18 14:02:44 -07:00
David Lawrence 5b64c7b084 updating calls to CryptoService.Create to pass role name 2015-06-18 13:53:10 -07:00
Diogo Monica 0ee61e25c9 Added Dockerfiles, changed compose 2015-06-18 01:22:15 -07:00
David Lawrence 6ad97259df updating tuf subcommand to list targets when run as 2015-06-18 00:37:31 -07:00
David Lawrence e434232709 list works 2015-06-17 23:45:51 -07:00
David Lawrence 322f60b1ba tuf push working 2015-06-17 22:10:07 -07:00
Diogo Monica b0df67acd3 Added small validation to GUNs, changed logrus loglevel 2015-06-17 22:06:37 -07:00
Diogo Monica e5dd1721b3 Renamed SKID to kID 2015-06-17 21:11:36 -07:00
David Lawrence bb32390698 adding target now works 2015-06-17 21:01:24 -07:00
Diogo Monica 69525459f3 Merge branch 'demo' of github.com:docker/vetinari into demo 2015-06-17 20:51:23 -07:00
Diogo Monica cb6f43e99a Changed universal ID to be TUF, cleaned UI 2015-06-17 20:51:18 -07:00
David Lawrence e11cab0519 tuf init working 2015-06-17 18:19:39 -07:00
Diogo Monica 712ff83945 Added cliCryptoService 2015-06-17 16:05:16 -07:00
Diogo Monica ff169897b6 s/QDN/GUN 2015-06-17 13:31:13 -07:00
David Lawrence 6805f290f0 all vetinari tests pass 2015-06-17 11:28:59 -07:00
Diogo Monica 770cca453a Added listing and removal of signing certs 2015-06-17 11:17:08 -07:00
Diogo Monica 3e828b5796 Fixed compilation errors for vetinari-server 2015-06-17 11:17:08 -07:00
Diogo Monica 08124c18f6 Added key generate 2015-06-17 11:16:11 -07:00
David Lawrence 2aba401607 good start on tuf commands 2015-06-17 11:13:42 -07:00
Diogo Monica 205379efb7 Refactor commands 2015-06-17 11:13:42 -07:00
Diogo Monica be021850d4 Fixing golint 2015-06-17 11:13:42 -07:00
Diogo Monica 836521e166 Refactor cmdline key naming and added TUF skeletons 2015-06-17 11:13:42 -07:00
Diogo Monica 931c5e2a9b Refactored Add by URL out from X509 Key Stores 2015-06-17 11:13:41 -07:00
Diogo Monica ae11e1472e Changed Cli lib to Cobra and renamed to notary 2015-06-17 11:13:41 -07:00
Diogo Monica 181a453adc Added GetVerifyOptions to KeyStores and better filter for loaded CAs 2015-06-17 11:13:41 -07:00
Diogo Monica c90a362cfe Addressing small comments and nits 2015-06-17 11:13:41 -07:00
Diogo Monica 93c7950516 Renamed Trust/Untrust to Add/Remove 2015-06-17 11:13:41 -07:00
Diogo Monica a8be1c7f57 Removed RepoStores and added Viper configuration 2015-06-17 11:13:41 -07:00
Diogo Monica 6ffe6df102 Added trustmanager package and simple CLI 2015-06-17 11:13:40 -07:00
David Lawrence 801dd397ff runs with basic setup for demo 2015-06-16 12:17:40 -07:00
David Lawrence 13c4d05b79 bugfixing so it builds with new gotuf repo. Need to work out what I'm going with CanSign method, might get rid of it and just inspect error response 2015-06-12 15:00:36 -07:00
David Lawrence cc0782d3d2 rewriting imports to 'gotuf', adding config to set log level, making
restart/shutdown cleanup connections after timeout, updating godeps
2015-06-11 16:30:25 -07:00
David Lawrence 953d79888a fixing build errors 2015-06-09 15:04:09 -07:00
David Lawrence 4b39bf0c97 changing over logging to logrus 2015-05-12 11:11:39 -07:00
David Lawrence 61fbfcadf1 fix for double init problem 2015-04-28 23:31:23 -07:00
Diogo Monica 15d9b3a668 Fixing paths on config.json 2015-04-28 11:22:10 -07:00
Nathan McCauley faeed37c22 print debugging on failure to load keys, correct cert paths 2015-04-28 11:22:10 -07:00
Nathan McCauley 95adc15e36 debugging stuffz 2015-04-28 11:22:10 -07:00
Nathan McCauley 5938d9e09c add CA config option 2015-04-28 11:22:10 -07:00
Nathan McCauley c043e6d5a3 Initial docker-compose config for rufus/vetinari integration 2015-04-28 11:22:09 -07:00
Diogo Monica 134fcae497 Adding new certs to vetinari 2015-04-27 18:39:31 -07:00
Nathan McCauley 39103bc6ef PR review fixups on config options 2015-04-27 11:14:12 -07:00
Nathan McCauley 8403c09c1f Hook up SigningService to server, add config 2015-04-27 11:14:12 -07:00
David Lawrence 4cc70c69a6 adding libtrust to godeps 2015-04-24 15:36:35 -07:00
David Lawrence d287dd9974 improving scoping by not exporting some things 2015-04-21 11:38:57 -07:00
David Lawrence 8a7f02c046 fixing vet 2015-04-20 17:02:11 -07:00
David Lawrence b386511b79 commiting config.go change that got missed 2015-04-20 15:17:50 -07:00
David Lawrence 52505d36e1 cleanup work and updating godeps 2015-04-20 11:30:58 -07:00
David Lawrence b2e089c6ee adding tests to utils package 2015-04-16 15:37:08 -07:00
David Lawrence 201546b2d8 interfaces all work together now and it builds 2015-04-13 09:51:02 -07:00
Derek McGowan 6fd6773b21 Fix go vet and lint issues
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2015-04-10 16:52:33 -07:00
David Lawrence 36d8ce0094 interfaces all work together now and it builds 2015-04-09 14:56:57 -07:00
David Lawrence 5f7e002a9a scaffolding for error, handler and context setup 2015-04-07 16:22:16 -07:00
Diogo Monica 9a495fa942 Initial working server commit 2015-03-31 18:40:07 -07:00