bridge

package
v0.0.0-...-911f5be Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2016 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Overview

21 october 2015

23 october 2015

21 october 2015

24 october 2015

23 october 2015

Index

Constants

This section is empty.

Variables

View Source
var Bridges []Bridge
View Source
var ErrWrongKEK = fmt.Errorf("wrong KEK")

Functions

This section is empty.

Types

type Bridge

type Bridge interface {
	Name() string
	Is(keySector []byte) bool
	NeedsKEK() bool
	// must return ks == nil if err != nil
	// do not check if KEK is wrong; that will be done in KeySector.DEK()
	// this way, we can still use KeySector.Raw() for research and debugging
	DecryptKeySector(keySector []byte, kek []byte) (ks KeySector, err error)
	DecryptLoopSteps() decryptloop.StepList
}

func IdentifyKeySector

func IdentifyKeySector(possibleKeySector []byte) Bridge

type IncompleteImplementationError

type IncompleteImplementationError string

func (IncompleteImplementationError) Error

type Initio

type Initio struct{}

func (Initio) DecryptKeySector

func (Initio) DecryptKeySector(keySector []byte, kek []byte) (KeySector, error)

func (Initio) DecryptLoopSteps

func (Initio) DecryptLoopSteps() decryptloop.StepList

func (Initio) Is

func (Initio) Is(keySector []byte) bool

func (Initio) Name

func (Initio) Name() string

func (Initio) NeedsKEK

func (Initio) NeedsKEK() bool

type InitioKeySector

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

func (*InitioKeySector) DEK

func (ks *InitioKeySector) DEK() (dek []byte, err error)

func (*InitioKeySector) Raw

func (ks *InitioKeySector) Raw() []byte

type JMicron

type JMicron struct{}

func (JMicron) DecryptKeySector

func (JMicron) DecryptKeySector(keySector []byte, kek []byte) (KeySector, error)

func (JMicron) DecryptLoopSteps

func (JMicron) DecryptLoopSteps() decryptloop.StepList

func (JMicron) Is

func (JMicron) Is(keySector []byte) bool

func (JMicron) Name

func (JMicron) Name() string

func (JMicron) NeedsKEK

func (JMicron) NeedsKEK() bool

type JMicronKeySector

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

func (*JMicronKeySector) DEK

func (ks *JMicronKeySector) DEK() (dek []byte, err error)

func (*JMicronKeySector) Raw

func (ks *JMicronKeySector) Raw() []byte

type KeySector

type KeySector interface {
	Raw() []byte
	// must return dek == nil (not an empty slice!) if err != nil
	DEK() (dek []byte, err error)
}

type PLX

type PLX struct{}

func (PLX) DecryptKeySector

func (PLX) DecryptKeySector(keySector []byte, kek []byte) (KeySector, error)

TODO how does the chip know the KEK was valid?

func (PLX) DecryptLoopSteps

func (PLX) DecryptLoopSteps() decryptloop.StepList

func (PLX) Is

func (PLX) Is(keySector []byte) bool

func (PLX) Name

func (PLX) Name() string

func (PLX) NeedsKEK

func (PLX) NeedsKEK() bool

type PLXKeySector

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

func (*PLXKeySector) DEK

func (ks *PLXKeySector) DEK() ([]byte, error)

func (*PLXKeySector) Raw

func (ks *PLXKeySector) Raw() []byte

type Symwave

type Symwave struct{}

func (Symwave) DecryptKeySector

func (Symwave) DecryptKeySector(keySector []byte, kek []byte) (KeySector, error)

func (Symwave) DecryptLoopSteps

func (Symwave) DecryptLoopSteps() decryptloop.StepList

func (Symwave) Is

func (Symwave) Is(keySector []byte) bool

func (Symwave) Name

func (Symwave) Name() string

func (Symwave) NeedsKEK

func (Symwave) NeedsKEK() bool

type SymwaveKeySector

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

func (*SymwaveKeySector) DEK

func (ks *SymwaveKeySector) DEK() (dek []byte, err error)

func (*SymwaveKeySector) Raw

func (ks *SymwaveKeySector) Raw() []byte

Jump to

Keyboard shortcuts

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