gh

package
v0.0.0-...-8edb766 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package gh provides a key directory implementation backed by the public GitHub user keys API

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertSSHPublicKeyToECDSAPublicKey

func ConvertSSHPublicKeyToECDSAPublicKey(sshPubKey ssh.PublicKey) (*ecdsa.PublicKey, error)

func ConvertSSHPublicKeyToED25519PublicKey

func ConvertSSHPublicKeyToED25519PublicKey(sshPubKey ssh.PublicKey) (*ed25519.PublicKey, error)

func ConvertSSHPublicKeyToRSAPublicKey

func ConvertSSHPublicKeyToRSAPublicKey(sshPubKey ssh.PublicKey) (*rsa.PublicKey, error)

Types

type DynamicGitHubKeyDirectory

type DynamicGitHubKeyDirectory struct {
	// contains filtered or unexported fields
}

func NewDynamicGitHubKeyDirectory

func NewDynamicGitHubKeyDirectory(headerName string) (*DynamicGitHubKeyDirectory, error)

func (*DynamicGitHubKeyDirectory) AddUserKeys

func (d *DynamicGitHubKeyDirectory) AddUserKeys(username string) error

func (*DynamicGitHubKeyDirectory) GetKey

func (d *DynamicGitHubKeyDirectory) GetKey(ctx context.Context, kid string, clientSpecifiedAlg string) (verifier.Algorithm, error)

func (*DynamicGitHubKeyDirectory) KeyFetcher

func (d *DynamicGitHubKeyDirectory) KeyFetcher(next http.Handler) http.Handler

KeyFetcher is a middleware that adds the user's keys to the key directory

type GitHubClient

type GitHubClient struct {
	// contains filtered or unexported fields
}

func NewGitHubClient

func NewGitHubClient() *GitHubClient

func (*GitHubClient) GetUserKeys

func (c *GitHubClient) GetUserKeys(username string) ([][]byte, error)

GetUserKeys fetches the public keys for a given GitHub user

type GitHubKeyDirectory

type GitHubKeyDirectory struct {
	// contains filtered or unexported fields
}

func NewGitHubKeyDirectory

func NewGitHubKeyDirectory(usernames []string) (*GitHubKeyDirectory, error)

func (*GitHubKeyDirectory) AddUserKeys

func (d *GitHubKeyDirectory) AddUserKeys(username string) error

func (*GitHubKeyDirectory) GetKey

func (d *GitHubKeyDirectory) GetKey(ctx context.Context, kid string, clientSpecifiedAlg string) (verifier.Algorithm, error)

type GitHubSigner

type GitHubSigner struct {
	// contains filtered or unexported fields
}

func NewGHSigner

func NewGHSigner(keydata []byte) (*GitHubSigner, error)

func (*GitHubSigner) ContentDigest

func (s *GitHubSigner) ContentDigest() contentdigest.Digester

func (*GitHubSigner) KeyID

func (s *GitHubSigner) KeyID() string

TODO: prefix username in front of keyhash?

func (*GitHubSigner) Sign

func (s *GitHubSigner) Sign(ctx context.Context, stringToSign string) ([]byte, error)

func (*GitHubSigner) Type

func (s *GitHubSigner) Type() string

type RequestSigner

type RequestSigner interface {
	SignRequest(*http.Request) (*http.Request, error)
}

func NewRequestSigner

func NewRequestSigner(transport signer.Transport) RequestSigner

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL