- Mar 29, 2022
-
-
Lily Sturmann authored
Signed-off-by:
Lily Sturmann <lsturman@redhat.com>
-
- Mar 11, 2022
-
-
priyawadhwa authored
* Return virtual index when creating and getting a log entry Use the virtual index when signing an entry on creation, and return that to the end user. There shouldn't be any observable difference here at the moment, until we actually shard the log. Signed-off-by:
Priya Wadhwa <priya@chainguard.dev> * Remove pointer to logRanges so value can't be modified Also make all fields private and only accessible via funcition calls Signed-off-by:
Priya Wadhwa <priya@chainguard.dev> * Fix virtual log index bug when getting indicies in inactive shards Signed-off-by:
Priya Wadhwa <priya@chainguard.dev>
-
- Mar 05, 2022
-
-
Lily Sturmann authored
* Add helpers and refactor sharding package - Adds a function to get a TreeID from an ID string - Adds testing for the above - Consolidates validation logic for UUID, TreeID, EntryID - Removes code that attempts to use ActiveIndex() in the sharding package, as this is not accessible due to import cycles - Other small cleanup and typo fixes Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Change logRanges to work with int64 This is the type used by the trillian TreeID and saves from having to convert in multiple places. Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Add TreeID to LogInfo API endpoint WARNING: breaks loginfo cmd to current prod server Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Update API based on logRangesFlag Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Use API's logRanges to retrieve artifacts Signed-off-by:
Lily Sturmann <lsturman@redhat.com>
-
- Jan 25, 2022
-
-
Lily Sturmann authored
* Move range.go into sharding package to avoid import cycles Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Change name of FullID to EntryID Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Add unit tests for sharding package Also add a few helper functions and update names. Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Add logic to GET artifacts via old UUID or new EntryID Signed-off-by:
Lily Sturmann <lsturman@redhat.com> * Add e2e test for longer EntryID Signed-off-by:
Lily Sturmann <lsturman@redhat.com>
-
- Dec 27, 2021
-
-
dlorenc authored
This was never actually correct - these are technically "payloadTypes", which are not actually mediaTypes. Some implementations mistakenly sent incorrect media types, so it appeared to work. The GCS storage layer rejected correct implementations that sent the payloadType, because these are not valid mediaTypes. We never used this field anyway, so let's drop it. I verified that the API correctly ignores unknown fields, so removing this will not break clients that send it. Signed-off-by:
Dan Lorenc <lorenc.d@gmail.com>
-
- Dec 20, 2021
-
-
dlorenc authored
We were catching these inside the IndexKeys function calls and logging, this change moves that up to the caller. This is much more standard and simplifies the implementations. Signed-off-by:
Dan Lorenc <lorenc.d@gmail.com>
-
- Nov 22, 2021
-
-
dlorenc authored
I had to change a few package imports to deal with upstream refactoring. Signed-off-by:
Dan Lorenc <lorenc.d@gmail.com>
-
- Oct 06, 2021
-
-
Bob Callaway authored
Each of the supported types has a Canonicalize() method that generates a JSON representation of the entry. If the golang library were to make a change to the order of keys when marshalling an object, it would cause a duplicate entry in the log for a semantically equivalent object. This change simply transforms the JSON into RFC8785-compliant canonicalized JSON protecting against any changes in JSON libraries going forward. Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- Jul 17, 2021
-
-
Bob Callaway authored
Previously we returned an HTTP 500 "error canonicalizing entry" error if Rekor was unable to parse or verify the proposed content of a new log entry. This adds a new error type ValidationError that allows implementers of the Canonicalize method to delineate between internal, transient errors and errors that clients can rectify. With this patch, errors parsing or validating (provided or referenced) artifacts will return an HTTP 400 message to the client with a message about the issue. Fixes: #362 Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- Jul 14, 2021
-
-
Bob Callaway authored
* Refactor PKI factory and add type checking This allows for more DRY addition of new PKI types, and stricter type checking. This also allows for simpler enumeration of supported PKI formats which will be used in further updates to simplify the CLI codebase. Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * revamp CLI flags; support different versions for upload Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * Add Alpine Package type This adds support for the alpine package format used by Alpine Linux, which is the concatenation of three tgz files (signature, control data, and then the actual package files). Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * use shaFlag for --artifact-hash Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * change arg type to PKIFormat Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * defer type-specific validation logic to type code (instead of in CLI); also use CliLogger throughout CLI Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * refactor factory code Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * review comments Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * Clean up EntryImpl interface Make the interface clearer by removing ambiguity around who and when an entry should have external objects fetched or validated. Signed-off-by:
Bob Callaway <bob.callaway@gmail.com> * update pluggable type README Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- Jul 12, 2021
-
-
dlorenc authored
Signed-off-by:
Dan Lorenc <lorenc.d@gmail.com>
-
- Jul 08, 2021
-
-
Bob Callaway authored
* Adopt new signing/verification APIs from sigstore This uses the new APIs introduced in sigstore/sigstore/pkg/signature and removes most of the calls directly to the golang crypto APIs. Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- Jun 23, 2021
-
-
asraa authored
* upload all generated timestamps Signed-off-by:
Asra Ali <asraa@google.com> * address bazooka comments Signed-off-by:
Asra Ali <asraa@google.com> * simplify params Signed-off-by:
Asra Ali <asraa@google.com> * address changes Signed-off-by:
Asra Ali <asraa@google.com> * forgot to run swagger Signed-off-by:
Asra Ali <asraa@google.com>
-
- Jun 16, 2021
-
-
asraa authored
Signed-off-by:
Asra Ali <asraa@google.com>
-
- Jun 07, 2021
-
-
dlorenc authored
This adds an "Attestation" method to the entry interface. Entries can return an attestation that they would like to store. The attestations are currently stored in GCS, but it supports any blob store. The feature is turned off with a flag, and we can set a max size as well. Signed-off-by:
Dan Lorenc <dlorenc@google.com>
-
- May 06, 2021
-
-
Bob Callaway authored
* Add Log ID to LogEntry field Since the signed entry timestamp (SET) will be able to prove insertion into the log, adding the log ID (aka public key SHA256 hash) makes it easier to know which log the entry came from. Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- May 05, 2021
-
-
Bob Callaway authored
* GetLogByIndexHandler returns 404 for missing index GRPC return codes have changed after switching the Trillian GRPC calls due to recent changes; therefore we need to adapt for InvalidArgument which should be returned as a 404 Not Found error to callers. Fixes #296 Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- Apr 29, 2021
-
-
Bob Callaway authored
* Add sha256 prefix to index keys for artifact hashes This change adds the `sha256:` prefix to index values that are created to simplify searching the transparency log for artifacts. In case we shift to using a different hashing algorithm in the future, this will provide a way to specify it. Fixes #289 Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- Apr 28, 2021
-
-
priyawadhwa authored
* Add signature to LogEntry for offline verification Also add an integration test for this. Signed-off-by:
Priya Wadhwa <priyawadhwa@google.com> * Address code review comments: - Canonicalize payload before signing it - Change name of signature to signedEntryTimestamp - move signedEntryTimestamp and inclusionProof into separate Verification field in LogEntry Signed-off-by:
Priya Wadhwa <priyawadhwa@google.com> * Create helper func for extracting log entry Signed-off-by:
Priya Wadhwa <priyawadhwa@google.com> * Add info around verifying signedEntryTimestamp as comments in openapi.yaml Signed-off-by:
Priya Wadhwa <priyawadhwa@google.com> * Generalize verification instructions Signed-off-by:
Priya Wadhwa <priyawadhwa@google.com>
-
- Apr 15, 2021
-
-
Carlos Tadeu Panato Junior authored
* update boilerplate header and apply go fmt Signed-off-by:
Carlos Panato <ctadeu@gmail.com> * lints: fix golangci-lint issues Signed-off-by:
Carlos Panato <ctadeu@gmail.com> * updated based on feedback Signed-off-by:
Carlos Panato <ctadeu@gmail.com>
-
- Apr 12, 2021
-
-
Dan Lorenc authored
This is changing as part of the general trillian signature changes. The trust model is still client -> database, our server trusts our database so we can pass signed messages on directly to users without double verification. Signed-off-by:
Dan Lorenc <dlorenc@google.com>
-
- Apr 10, 2021
-
-
Bob Callaway authored
This patch removes the /api/v1/log/entries/{uuid}/proof endpoint. If you have the UUID (aka the leaf Merkle hash), you likely want proof that the content represented by that hash is included in the log. There's no need for a separate /proof endpoint to deliver the same content. This commit also ensures that the getLogEntryByIndex and getLogEntryByUUID endpoints return an inclusion proof as part of their response content. The search endpoint also now returns the inclusion proof of all entries returned from the query. With this patch, Rekor no longer uses the deprecated `GetLeavesByHash` Trillian API. Fixes #229 Signed-off-by:
Bob Callaway <bob.callaway@gmail.com>
-
- Mar 24, 2021
-
-
Bob Callaway authored
Adds a Location response header when a 409 Conflict error is returned from the server when a duplicate entry is sent for insertion into the log. Also changes message printed by CLI to improve usability. Fixes #222 Signed-off-by:
Bob Callaway <bcallawa@redhat.com>
-
- Mar 14, 2021
-
-
dlorenc authored
This will allow us to use types.NewEntry() to unmarshal returned values in clients. Signed-off-by:
Dan Lorenc <dlorenc@google.com>
-
- Mar 03, 2021
-
-
Bob Callaway authored
Since the API key can be specified as an environment variable and could be thought of as an authentication credential, it should not be included in the path to the created entry in the log. Previously we simply appended the new entry's UUID to the full URL, which was incorrect if an API key was specified as a query parameter. Fixes #182 Signed-off-by:
Bob Callaway <bcallawa@redhat.com>
-
- Feb 26, 2021
-
-
Luke Hinds authored
-
- Feb 25, 2021
-
-
Luke Hinds authored
All instances of projectrekor are now renamed to SigStore This includes: * Import paths * Tests * Readme's Signed-off-by:
Luke Hinds <lhinds@redhat.com>
-
- Feb 22, 2021
-
-
dependabot[bot] authored
* Bump github.com/google/trillian from 1.3.10 to 1.3.13 Bumps [github.com/google/trillian](https://github.com/google/trillian) from 1.3.10 to 1.3.13. - [Release notes](https://github.com/google/trillian/releases) - [Changelog](https://github.com/google/trillian/blob/master/CHANGELOG.md) - [Commits](https://github.com/google/trillian/compare/v1.3.10...v1.3.13 ) Signed-off-by:
dependabot[bot] <support@github.com> * update to new package structure Signed-off-by:
Bob Callaway <bcallawa@redhat.com> * register hasher Signed-off-by:
Bob Callaway <bcallawa@redhat.com> * revert to original naming Signed-off-by:
Bob Callaway <bcallawa@redhat.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by:
Bob Callaway <bcallawa@redhat.com> Co-authored-by:
Bob Callaway <bobcallaway@users.noreply.github.com>
-
- Feb 09, 2021
-
-
dlorenc authored
This works! We can use it to track # of new entries over time.
-
- Jan 28, 2021
-
-
Bob Callaway authored
-
- Jan 21, 2021
-
-
Dan Lorenc authored
-
- Jan 19, 2021
-
-
Bob Callaway authored
Signed-off-by:
Bob Callaway <bcallawa@redhat.com> Co-authored-by:
Dan Lorenc <dlorenc@google.com>
-
- Jan 05, 2021
-
-
Bob Callaway authored
The search API allows callers to look for multiple entries in the same request; this change parallelizes the lookups to help speed up processing. Signed-off-by:
Bob Callaway <bcallawa@redhat.com>
-
- Jan 04, 2021
-
-
Bob Callaway authored
QueuedLeafResponse holds the actual insertion response code, so check that instead of just the base GRPC status code. also fixes middleware ordering issue Signed-off-by:
Bob Callaway <bcallawa@redhat.com>
-
- Jan 03, 2021
-
-
Dan Lorenc authored
This allows us to skip sticking it onto each request context and retrieving it. Signed-off-by:
Dan Lorenc <dlorenc@google.com>
-
- Dec 24, 2020
-
-
Bob Callaway authored
After #77, we have one global GRPC channel for the entire process. This change causes each GRPC call to be made on the incoming HTTP request's context such that if an HTTP client cancels prematurely, we will handle the GRPC cleanup appropriately. Signed-off-by:
Bob Callaway <bcallawa@redhat.com>
-
- Dec 19, 2020
-
-
Bob Callaway authored
- adds trillian API object to context - improves request error logging pre and post validation - use consistent request context throughout all GRPC calls - improve validation of incoming UUID values - disable swagger UI endpoint - only print cacheable headers if response code is HTTP 2XX - use GetLeavesByRange instead of deprecated GetLeavesByIndex API Signed-off-by:
Bob Callaway <bcallawa@redhat.com>
-
- Dec 17, 2020
-
-
Bob Callaway authored
-
- Dec 04, 2020
-
-
Bob Callaway authored
-