Documentation
¶
Index ¶
- Constants
- Variables
- func DERSignatureToRS(tlv []byte) ([]byte, []byte, error)
- func VerifyIdentity(challenge []byte, tlvData []byte) ([]byte, error)
- type ApplicationInfo
- func (a *ApplicationInfo) HasCapability(c Capability) bool
- func (a *ApplicationInfo) HasCredentialsManagementCapability() bool
- func (a *ApplicationInfo) HasFactoryResetCapability() bool
- func (a *ApplicationInfo) HasKeyManagementCapability() bool
- func (a *ApplicationInfo) HasNDEFCapability() bool
- func (a *ApplicationInfo) HasSecureChannelCapability() bool
- type ApplicationStatus
- type Capability
- type CardStatus
- type CashApplicationInfo
- type Certificate
- type Channel
- type ErrInvalidLifeCycleValue
- type ExportedKey
- type Metadata
- type PairingInfo
- type Signature
Constants ¶
View Source
const ( TagSelectResponsePreInitialized uint8 = 0x80 TagApplicationStatusTemplate uint8 = 0xA3 TagApplicationInfoTemplate uint8 = 0xA4 TagApplicationInfoCapabilities uint8 = 0x8D )
View Source
const ( LifeCycleOpReady lifeCycle = 0x01 LifeCycleInitialized = 0x07 LifeCycleSecured = 0x0F LifeCycleCardLocked = 0x7F LifeCycleTerminated = 0xFF )
Variables ¶
View Source
var ( TagGetStatusTemplate = apdu.Tag{0xE3} TagGetStatusLifeCycleState = apdu.Tag{0x9F, 0x70} )
View Source
var ( TagExportKeyTemplate = apdu.Tag{0xA1} TagExportKeyPublic = apdu.Tag{0x80} TagExportKeyPrivate = apdu.Tag{0x81} TagExportKeyPublicChain = apdu.Tag{0x82} )
View Source
var ( TagSignatureTemplate = uint8(0xA0) TagRawSignature = uint8(0x80) )
View Source
var ErrApplicationStatusTemplateNotFound = errors.New("application status template not found")
View Source
var ErrWrongApplicationInfoTemplate = errors.New("wrong application info template")
View Source
var (
TagCertificate = uint8(0x8A)
)
Functions ¶
Types ¶
type ApplicationInfo ¶
type ApplicationInfo struct {
Installed bool
Initialized bool
InstanceUID []byte
SecureChannelPublicKey []byte
Version []byte
AvailableSlots []byte
// KeyUID is the sha256 of of the master public key on the card.
// It's empty if the card doesn't contain any key.
KeyUID []byte
Capabilities Capability
}
func ParseApplicationInfo ¶
func ParseApplicationInfo(data []byte) (*ApplicationInfo, error)
func (*ApplicationInfo) HasCapability ¶
func (a *ApplicationInfo) HasCapability(c Capability) bool
func (*ApplicationInfo) HasCredentialsManagementCapability ¶
func (a *ApplicationInfo) HasCredentialsManagementCapability() bool
func (*ApplicationInfo) HasFactoryResetCapability ¶ added in v0.3.0
func (a *ApplicationInfo) HasFactoryResetCapability() bool
func (*ApplicationInfo) HasKeyManagementCapability ¶
func (a *ApplicationInfo) HasKeyManagementCapability() bool
func (*ApplicationInfo) HasNDEFCapability ¶
func (a *ApplicationInfo) HasNDEFCapability() bool
func (*ApplicationInfo) HasSecureChannelCapability ¶
func (a *ApplicationInfo) HasSecureChannelCapability() bool
type ApplicationStatus ¶
type ApplicationStatus struct {
PinRetryCount int
PUKRetryCount int
KeyInitialized bool
Path string
}
func ParseApplicationStatus ¶
func ParseApplicationStatus(data []byte) (*ApplicationStatus, error)
type Capability ¶
type Capability uint8
const ( CapabilitySecureChannel Capability = 1 << iota CapabilityKeyManagement CapabilityCredentialsManagement CapabilityNDEF CapabilityFactoryReset CapabilityAll = CapabilitySecureChannel | CapabilityKeyManagement | CapabilityCredentialsManagement | CapabilityNDEF | CapabilityFactoryReset )
type CardStatus ¶
type CardStatus struct {
// contains filtered or unexported fields
}
func ParseCardStatus ¶
func ParseCardStatus(data []byte) (*CardStatus, error)
func (*CardStatus) LifeCycle ¶
func (cs *CardStatus) LifeCycle() string
type CashApplicationInfo ¶
type CashApplicationInfo struct {
Installed bool
PublicKey []byte
PublicData []byte
Version []byte
}
func ParseCashApplicationInfo ¶
func ParseCashApplicationInfo(data []byte) (*CashApplicationInfo, error)
type Certificate ¶ added in v0.3.0
type Certificate struct {
// contains filtered or unexported fields
}
func ParseCertificate ¶ added in v0.3.0
func ParseCertificate(data []byte) (*Certificate, error)
type Channel ¶
Channel is an interface with a Send method to send apdu commands and receive apdu responses.
type ErrInvalidLifeCycleValue ¶
type ErrInvalidLifeCycleValue struct {
// contains filtered or unexported fields
}
func (*ErrInvalidLifeCycleValue) Error ¶
func (e *ErrInvalidLifeCycleValue) Error() string
type ExportedKey ¶ added in v0.3.3
type ExportedKey struct {
// contains filtered or unexported fields
}
func ParseExportKeyResponse ¶
func ParseExportKeyResponse(data []byte) (*ExportedKey, error)
func (*ExportedKey) ChainCode ¶ added in v0.3.3
func (k *ExportedKey) ChainCode() []byte
func (*ExportedKey) PrivKey ¶ added in v0.3.3
func (k *ExportedKey) PrivKey() []byte
func (*ExportedKey) PubKey ¶ added in v0.3.3
func (k *ExportedKey) PubKey() []byte
type Metadata ¶
type Metadata struct {
// contains filtered or unexported fields
}
func EmptyMetadata ¶
func EmptyMetadata() *Metadata
func ParseMetadata ¶
func (*Metadata) RemovePath ¶
type PairingInfo ¶
type Signature ¶
type Signature struct {
// contains filtered or unexported fields
}
func ParseRecoverableSignature ¶ added in v0.3.0
func ParseSignature ¶
Click to show internal directories.
Click to hide internal directories.