Skip to content

Refactor key handling#96

Merged
titanous merged 3 commits intomasterfrom
refactor-keys
Aug 12, 2016
Merged

Refactor key handling#96
titanous merged 3 commits intomasterfrom
refactor-keys

Conversation

@titanous
Copy link
Copy Markdown
Contributor

@titanous titanous commented Aug 9, 2016

This is the first step towards supporting ECDSA keys and signing via PKCS11.

  • Remove unused RSA signature verifier.
  • Use golang.org/x/crypto/ed25519 package instead of github.com/agl/ed25519.
  • Don't mix private and public key structs, use a separate struct
    for private keys.
  • Only store public keys in database used for signature
    verification.
  • Use crypto.Signer interface instead of providing private keys
    directly when signing.
  • Don't make as many assumptions about using Ed25519 keys
    everywhere.
  • Ignore unknown key types when populating the public key database.

I've tested that keys generated with the previous implementation can be decoded and used by this refactored code (there is no change in the serialized data structures).

Signed-off-by: Jonathan Rudenberg <jonathan@titanous.com>
Signed-off-by: Jonathan Rudenberg <jonathan@titanous.com>
local_store.go Outdated
m.keys[role] = make([]*data.Key, 0)
func (m *memoryStore) SavePrivateKey(role string, key *signed.PrivateKey) error {
if _, ok := m.signers[role]; !ok {
m.signers[role] = make([]signed.Signer, 0)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the explicit make necessary?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, it shouldn't be.

@lmars
Copy link
Copy Markdown
Contributor

lmars commented Aug 12, 2016

LGTM

- Don't mix private and public key structs, use a separate struct
  for private keys.
- Only store public keys in database used for signature
  verification.
- Use crypto.Signer interface instead of providing private keys
  directly when signing.
- Don't make as many assumptions about using Ed25519 keys
  everywhere.
- Ignore unknown key types when populating the public key database.

Signed-off-by: Jonathan Rudenberg <jonathan@titanous.com>
@titanous titanous merged commit d65801f into master Aug 12, 2016
@titanous titanous deleted the refactor-keys branch August 12, 2016 18:34
lebauce pushed a commit to lebauce/go-tuf that referenced this pull request Jul 26, 2021
rdimitrov pushed a commit to rdimitrov/go-tuf that referenced this pull request Jan 25, 2024
…eframework#96)

Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.17.0 to 0.18.0.
- [Commits](golang/crypto@v0.17.0...v0.18.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
rdimitrov pushed a commit that referenced this pull request Jan 29, 2024
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.17.0 to 0.18.0.
- [Commits](golang/crypto@v0.17.0...v0.18.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants