torcert

package
v0.0.0-...-c2fff64 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2022 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ExtRegistry = make(map[EXT_TYPE]func() Extension)

Functions

This section is empty.

Types

type CERT_KEY_TYPE

type CERT_KEY_TYPE uint8
const (
	CERT_KEY_TYPE_ED25519        CERT_KEY_TYPE = 0x01
	CERT_KEY_TYPE_SHA256_OF_RSA  CERT_KEY_TYPE = 0x02
	CERT_KEY_TYPE_SHA256_OF_X509 CERT_KEY_TYPE = 0x03
)

type CERT_TYPE

type CERT_TYPE uint8
const (
	// Reserved to avoid conflict with types used in CERTS cells.
	CERT_TYPE_RESERVED_0 CERT_TYPE = 0x00
	CERT_TYPE_RESERVED_1 CERT_TYPE = 0x01
	CERT_TYPE_RESERVED_2 CERT_TYPE = 0x02
	CERT_TYPE_RESERVED_3 CERT_TYPE = 0x03

	// Ed25519 signing key with an identity key
	CERT_TYPE_ID_SIGNING CERT_TYPE = 0x04

	// TLS link certificate signed with ed25519 signing key
	CERT_TYPE_SIGNING_LINK CERT_TYPE = 0x05

	// Ed25519 authentication key signed with ed25519 signing key
	CERT_TYPE_SIGNING_AUTH CERT_TYPE = 0x06

	// Reserved for RSA identity cross-certification
	CERT_TYPE_RSA_ED_CROSSCERT CERT_TYPE = 0x07

	// Onion service: short-term descriptor signing key, signed with blinded public key
	CERT_TYPE_SIGNING_HS_DESC CERT_TYPE = 0x08

	// Onion service: intro point authentication key, cross-certifying the descriptor signing key
	CERT_TYPE_AUTH_HS_IP_KEY CERT_TYPE = 0x09

	// ntor onion key cross-certifying ed25519 identity key
	CERT_TYPE_ONION_ID CERT_TYPE = 0x0A

	// Onion service: ntor-extra encryption key, cross-certifying descriptor signing key
	CERT_TYPE_CROSS_HS_IP_KEYS CERT_TYPE = 0x0B
)

type CERT_VERSION

type CERT_VERSION uint8
const (
	CERT_VERSION_1 CERT_VERSION = 0x01
)

type EXT_FLAG

type EXT_FLAG uint8
const (
	EXT_FLAG_INCLUDE_SIGNING_KEY EXT_FLAG = 0x01
)

type EXT_TYPE

type EXT_TYPE uint8
const (
	EXT_TYPE_ED25519_SIGNING_KEY EXT_TYPE = 0x04
)

type Ed25519Cert

type Ed25519Cert struct {
	Version CERT_VERSION

	CertType CERT_TYPE

	// A time after which this certificate will no longer be valid.
	ExpirationDate time.Time

	CertKeyType CERT_KEY_TYPE

	// The key authenticated by this certificate
	CertifiedEd25519Key ed25519.PublicKey
	CertifiedKeyHash    []byte

	Extensions []Extension

	Signature []byte
}

type ExtHeader

type ExtHeader struct {
	Length uint16
	Type   EXT_TYPE
	Flags  EXT_FLAG
}

func (ExtHeader) ExtFlags

func (h ExtHeader) ExtFlags() EXT_FLAG

func (*ExtHeader) ExtRead

func (h *ExtHeader) ExtRead(r io.Reader, header *ExtHeader) (err error)

func (*ExtHeader) ExtSetFlags

func (h *ExtHeader) ExtSetFlags(extFlags EXT_FLAG)

func (*ExtHeader) ExtSetType

func (h *ExtHeader) ExtSetType(extType EXT_TYPE)

func (ExtHeader) ExtSize

func (h ExtHeader) ExtSize() int

func (ExtHeader) ExtType

func (h ExtHeader) ExtType() EXT_TYPE

func (*ExtHeader) ExtUpdate

func (h *ExtHeader) ExtUpdate() int

func (ExtHeader) ExtWrite

func (h ExtHeader) ExtWrite(w io.Writer) (err error)

type Extension

type Extension interface {
	// Basic methods
	ExtType() EXT_TYPE
	ExtSize() int
	ExtFlags() EXT_FLAG
	ExtSetType(extType EXT_TYPE)
	ExtSetFlags(extFlags EXT_FLAG)

	// I/O methods
	ExtUpdate() int
	ExtRead(r io.Reader, header *ExtHeader) (err error)
	ExtWrite(w io.Writer) (err error)
}

func NewExtension

func NewExtension(extType EXT_TYPE) (ext Extension)

type UnknownExtension

type UnknownExtension struct {
	ExtHeader
	Data []byte
}

func (*UnknownExtension) ExtRead

func (ext *UnknownExtension) ExtRead(r io.Reader, header *ExtHeader) (err error)

func (UnknownExtension) ExtWrite

func (ext UnknownExtension) ExtWrite(w io.Writer) (err error)

Jump to

Keyboard shortcuts

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