Documentation
¶
Overview ¶
Package pairing defines the bounded, transcript-bound plumtree-pair-v1 protocol contract. It carries proofs only; private keys and phrases never appear in the wire structures.
Index ¶
- Constants
- Variables
- func ClientProof(secret []byte, t Transcript) ([]byte, error)
- func DeriveKey(secret []byte) ([]byte, error)
- func DeriveVerifier(salt, secret []byte) ([]byte, error)
- func ServerProof(secret []byte, t Transcript) ([]byte, error)
- func VerifyClientProof(secret []byte, t Transcript, received []byte) error
- func VerifyServerProof(secret []byte, t Transcript, received []byte) error
- func WriteFrame(w io.Writer, frame Frame) error
- type ClientHello
- type Complete
- type Frame
- type Problem
- type Proof
- type Purpose
- type ServerHello
- type Transcript
Constants ¶
Variables ¶
Functions ¶
func ClientProof ¶
func ClientProof(secret []byte, t Transcript) ([]byte, error)
func DeriveVerifier ¶
DeriveVerifier makes a caller-held phrase usable for transcript proofs without placing the phrase itself in SQLite or on the wire.
func ServerProof ¶
func ServerProof(secret []byte, t Transcript) ([]byte, error)
func VerifyClientProof ¶
func VerifyClientProof(secret []byte, t Transcript, received []byte) error
func VerifyServerProof ¶
func VerifyServerProof(secret []byte, t Transcript, received []byte) error
Types ¶
type ClientHello ¶
type ClientHello struct {
Transcript Transcript `json:"transcript"`
DeviceName string `json:"deviceName,omitempty"`
RecoverySalt []byte `json:"recoverySalt,omitempty"`
RecoveryVerifier []byte `json:"recoveryVerifier,omitempty"`
}
type ServerHello ¶
type Transcript ¶
type Transcript struct {
SessionID string `json:"sessionID"`
ServerID string `json:"serverID"`
HostKeyFingerprint string `json:"hostKeyFingerprint"`
ClientNonce []byte `json:"clientNonce"`
ServerNonce []byte `json:"serverNonce"`
PublicKey string `json:"publicKey"`
DeviceFingerprint string `json:"deviceFingerprint"`
Purpose Purpose `json:"purpose"`
Identifier string `json:"identifier"`
}
Transcript binds both SSH endpoints, both fresh nonces, the proposed key, and the purpose. JSON field order is fixed by the struct for stable MACs.
func (Transcript) Validate ¶
func (t Transcript) Validate() error
Click to show internal directories.
Click to hide internal directories.