segment

package
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2018 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KeyCompromitted      = "1"
	KeyMaybeCompromitted = "501"
	KeyRevocationMisc    = "999"
)
View Source
const EncryptionHeaderSegmentID = "HNVSK"
View Source
const HKKOMSegmentNumber = -1

Variables

View Source
var (
	SyncModeAquireClientID               = SyncMode{/* contains filtered or unexported fields */}
	SyncModeAquireLastProcessedMessageID = SyncMode{/* contains filtered or unexported fields */}
	SyncModeAquireSignatureID            = SyncMode{/* contains filtered or unexported fields */}
)

Possible sync modes

View Source
var FINTS300 = HBCIVersion{

	PinTanEncryptionHeader:        NewPinTanEncryptionHeaderSegmentV3,
	SynchronisationRequest:        NewSynchronisationSegmentV3,
	SignatureHeader:               NewSignatureHeaderSegmentV4,
	PinTanSignatureHeader:         NewPinTanSignatureHeaderSegmentV4,
	SignatureEnd:                  NewSignatureEndSegmentV2,
	AccountBalanceRequest:         NewAccountBalanceRequestV6,
	AccountTransactionRequest:     NewAccountTransactionRequestSegmentV6,
	SepaAccountTransactionRequest: NewAccountTransactionRequestSegmentV7,
	StatusProtocolRequest:         NewStatusProtocolRequestV4,
	// contains filtered or unexported fields
}
View Source
var HBCI220 = HBCIVersion{

	PinTanEncryptionHeader:    NewPinTanEncryptionHeaderSegment,
	RDHEncryptionHeader:       NewEncryptionHeaderSegment,
	SignatureHeader:           NewSignatureHeaderSegmentV3,
	PinTanSignatureHeader:     NewPinTanSignatureHeaderSegment,
	RDHSignatureHeader:        NewRDHSignatureHeaderSegment,
	SignatureEnd:              NewSignatureEndSegmentV1,
	SynchronisationRequest:    NewSynchronisationSegmentV2,
	AccountBalanceRequest:     NewAccountBalanceRequestV5,
	AccountTransactionRequest: NewAccountTransactionRequestSegmentV5,
	StatusProtocolRequest:     NewStatusProtocolRequestV3,
	// contains filtered or unexported fields
}
View Source
var KnownSegments = SegmentIndex{/* contains filtered or unexported fields */}
View Source
var SupportedHBCIVersions = map[int]HBCIVersion{
	220: HBCI220,
	300: FINTS300,
}

SupportedHBCIVersions maps integer version codes to HBCIVersions

Functions

func AccountBalanceRequestBuilder added in v0.1.4

func AccountBalanceRequestBuilder(versions []int) (func(account domain.AccountConnection, allAccounts bool) AccountBalanceRequest, error)

AccountBalanceRequestBuilder returns the highest matching versioned segment

func AccountTransactionRequestBuilder added in v0.1.4

func AccountTransactionRequestBuilder(versions []int) (func(account domain.AccountConnection, allAccounts bool) *AccountTransactionRequestSegment, error)

func ExtractElements

func ExtractElements(segment []byte) ([][]byte, error)

ExtractElements extracts the data elements from segment

func NewBasicSegment

func NewBasicSegment(number int, seg basicSegment) *segment

func NewBasicSegmentWithHeader

func NewBasicSegmentWithHeader(header *element.SegmentHeader, seg basicSegment) *segment

func NewReferencingBasicSegment

func NewReferencingBasicSegment(number int, ref int, seg basicSegment) *segment

func SegmentFromHeaderBytes

func SegmentFromHeaderBytes(headerBytes []byte, seg basicSegment) (*segment, error)

func SepaAccountTransactionRequestBuilder added in v0.1.4

func SepaAccountTransactionRequestBuilder(versions []int) (func(account domain.InternationalAccountConnection, allAccounts bool) *AccountTransactionRequestSegment, error)

Types

type AccountBalanceRequest

type AccountBalanceRequest interface {
	ClientSegment
	SetContinuationMark(continuationMark string)
}

func NewAccountBalanceRequestV5

func NewAccountBalanceRequestV5(account domain.AccountConnection, allAccounts bool) AccountBalanceRequest

func NewAccountBalanceRequestV6

func NewAccountBalanceRequestV6(account domain.AccountConnection, allAccounts bool) AccountBalanceRequest

type AccountBalanceRequestSegmentV5

type AccountBalanceRequestSegmentV5 struct {
	ClientSegment
	AccountConnection     *element.AccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountBalanceRequestSegmentV5) ID

func (*AccountBalanceRequestSegmentV5) SetContinuationMark

func (a *AccountBalanceRequestSegmentV5) SetContinuationMark(continuationMark string)

func (*AccountBalanceRequestSegmentV5) Version

func (a *AccountBalanceRequestSegmentV5) Version() int

type AccountBalanceRequestSegmentV6

type AccountBalanceRequestSegmentV6 struct {
	ClientSegment
	AccountConnection     *element.AccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountBalanceRequestSegmentV6) ID

func (*AccountBalanceRequestSegmentV6) SetContinuationMark

func (a *AccountBalanceRequestSegmentV6) SetContinuationMark(continuationMark string)

func (*AccountBalanceRequestSegmentV6) Version

func (a *AccountBalanceRequestSegmentV6) Version() int

type AccountBalanceResponse

type AccountBalanceResponse interface {
	BankSegment
	AccountBalance() domain.AccountBalance
}

type AccountBalanceResponseSegment

type AccountBalanceResponseSegment struct {
	Segment
	AccountConnection  *element.AccountConnectionDataElement
	AccountProductName *element.AlphaNumericDataElement
	AccountCurrency    *element.CurrencyDataElement
	BookedBalance      *element.BalanceDataElement
	EarmarkedBalance   *element.BalanceDataElement
	CreditLimit        *element.AmountDataElement
	AvailableAmount    *element.AmountDataElement
	UsedAmount         *element.AmountDataElement
	BookingDate        *element.DateDataElement
	BookingTime        *element.TimeDataElement
	DueDate            *element.DateDataElement
}

func (*AccountBalanceResponseSegment) AccountBalance

func (*AccountBalanceResponseSegment) ID

func (*AccountBalanceResponseSegment) UnmarshalHBCI

func (a *AccountBalanceResponseSegment) UnmarshalHBCI(value []byte) error

func (*AccountBalanceResponseSegment) Version

func (a *AccountBalanceResponseSegment) Version() int

type AccountInformation

type AccountInformation interface {
	BankSegment
	Account() domain.AccountInformation
}

type AccountInformationRequest

type AccountInformationRequest interface {
	ClientSegment
	SetContinuationMark(continuationMark string)
}

func NewAccountInformationRequestSegmentV1

func NewAccountInformationRequestSegmentV1(account domain.AccountConnection, allAccounts bool) AccountInformationRequest

func NewAccountInformationRequestSegmentV2

func NewAccountInformationRequestSegmentV2(account domain.AccountConnection, allAccounts bool) AccountInformationRequest

func NewAccountInformationRequestSegmentV3

func NewAccountInformationRequestSegmentV3(account domain.InternationalAccountConnection, allAccounts bool) AccountInformationRequest

func NewAccountInformationRequestSegmentV4

func NewAccountInformationRequestSegmentV4(account domain.InternationalAccountConnection, allAccounts bool) AccountInformationRequest

func NewAccountInformationRequestSegmentV5

func NewAccountInformationRequestSegmentV5(account domain.InternationalAccountConnection, allAccounts bool) AccountInformationRequest

func NewAccountInformationRequestSegmentV6

func NewAccountInformationRequestSegmentV6(account domain.InternationalAccountConnection, allAccounts bool) AccountInformationRequest

type AccountInformationRequestSegmentV1

type AccountInformationRequestSegmentV1 struct {
	ClientSegment
	AccountConnection     *element.AccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountInformationRequestSegmentV1) ID

func (*AccountInformationRequestSegmentV1) SetContinuationMark

func (a *AccountInformationRequestSegmentV1) SetContinuationMark(continuationMark string)

func (*AccountInformationRequestSegmentV1) Version

type AccountInformationRequestSegmentV2

type AccountInformationRequestSegmentV2 struct {
	ClientSegment
	AccountConnection     *element.AccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountInformationRequestSegmentV2) ID

func (*AccountInformationRequestSegmentV2) SetContinuationMark

func (a *AccountInformationRequestSegmentV2) SetContinuationMark(continuationMark string)

func (*AccountInformationRequestSegmentV2) Version

type AccountInformationRequestSegmentV3

type AccountInformationRequestSegmentV3 struct {
	ClientSegment
	AccountConnection     *element.InternationalAccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountInformationRequestSegmentV3) ID

func (*AccountInformationRequestSegmentV3) SetContinuationMark

func (a *AccountInformationRequestSegmentV3) SetContinuationMark(continuationMark string)

func (*AccountInformationRequestSegmentV3) Version

type AccountInformationRequestSegmentV4

type AccountInformationRequestSegmentV4 struct {
	ClientSegment
	AccountConnection     *element.InternationalAccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountInformationRequestSegmentV4) ID

func (*AccountInformationRequestSegmentV4) SetContinuationMark

func (a *AccountInformationRequestSegmentV4) SetContinuationMark(continuationMark string)

func (*AccountInformationRequestSegmentV4) Version

type AccountInformationRequestSegmentV5

type AccountInformationRequestSegmentV5 struct {
	ClientSegment
	AccountConnection     *element.InternationalAccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountInformationRequestSegmentV5) ID

func (*AccountInformationRequestSegmentV5) SetContinuationMark

func (a *AccountInformationRequestSegmentV5) SetContinuationMark(continuationMark string)

func (*AccountInformationRequestSegmentV5) Version

type AccountInformationRequestSegmentV6

type AccountInformationRequestSegmentV6 struct {
	ClientSegment
	AccountConnection     *element.InternationalAccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountInformationRequestSegmentV6) ID

func (*AccountInformationRequestSegmentV6) SetContinuationMark

func (a *AccountInformationRequestSegmentV6) SetContinuationMark(continuationMark string)

func (*AccountInformationRequestSegmentV6) Version

type AccountInformationResponseSegment

type AccountInformationResponseSegment struct {
	Segment
	AccountConnection                *element.AccountConnectionDataElement
	AccountKind                      *element.NumberDataElement
	Name1                            *element.AlphaNumericDataElement
	Name2                            *element.AlphaNumericDataElement
	AccountProductID                 *element.AlphaNumericDataElement
	AccountCurrency                  *element.CurrencyDataElement
	OpeningDate                      *element.DateDataElement
	DebitInterest                    *element.ValueDataElement
	CreditInterest                   *element.ValueDataElement
	OverDebitInterest                *element.ValueDataElement
	CreditLimit                      *element.AmountDataElement
	ReferenceAccount                 *element.AccountConnectionDataElement
	AccountStatementShippingType     *element.NumberDataElement
	AccountStatementShippingRotation *element.NumberDataElement
	AdditionalInformation            *element.TextDataElement
	DisposalEligiblePersons          *element.DisposalEligiblePersonsDataElement
}

func (*AccountInformationResponseSegment) ID

func (*AccountInformationResponseSegment) UnmarshalHBCI

func (a *AccountInformationResponseSegment) UnmarshalHBCI(value []byte) error

func (*AccountInformationResponseSegment) Version

type AccountInformationSegment

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

func (*AccountInformationSegment) UnmarshalHBCI

func (a *AccountInformationSegment) UnmarshalHBCI(value []byte) error

type AccountInformationV4

func (*AccountInformationV4) Account

func (*AccountInformationV4) ID

func (a *AccountInformationV4) ID() string

func (*AccountInformationV4) UnmarshalHBCI

func (a *AccountInformationV4) UnmarshalHBCI(value []byte) error

func (*AccountInformationV4) Version

func (a *AccountInformationV4) Version() int

type AccountInformationV5

func (*AccountInformationV5) Account

func (*AccountInformationV5) ID

func (a *AccountInformationV5) ID() string

func (*AccountInformationV5) UnmarshalHBCI

func (a *AccountInformationV5) UnmarshalHBCI(value []byte) error

func (*AccountInformationV5) Version

func (a *AccountInformationV5) Version() int

type AccountInformationV6

func (*AccountInformationV6) Account

func (*AccountInformationV6) ID

func (a *AccountInformationV6) ID() string

func (*AccountInformationV6) UnmarshalHBCI

func (a *AccountInformationV6) UnmarshalHBCI(value []byte) error

func (*AccountInformationV6) Version

func (a *AccountInformationV6) Version() int

type AccountTransactionRequestSegment

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

func NewAccountTransactionRequestSegmentV5

func NewAccountTransactionRequestSegmentV5(account domain.AccountConnection, allAccounts bool) *AccountTransactionRequestSegment

func NewAccountTransactionRequestSegmentV6

func NewAccountTransactionRequestSegmentV6(account domain.AccountConnection, allAccounts bool) *AccountTransactionRequestSegment

func NewAccountTransactionRequestSegmentV7

func NewAccountTransactionRequestSegmentV7(account domain.InternationalAccountConnection, allAccounts bool) *AccountTransactionRequestSegment

type AccountTransactionRequestV5

type AccountTransactionRequestV5 struct {
	ClientSegment
	Account               *element.AccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	From                  *element.DateDataElement
	To                    *element.DateDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountTransactionRequestV5) ID

func (*AccountTransactionRequestV5) SetContinuationReference

func (a *AccountTransactionRequestV5) SetContinuationReference(aufsetzpoint string)

func (*AccountTransactionRequestV5) SetTransactionRange

func (a *AccountTransactionRequestV5) SetTransactionRange(timeframe domain.Timeframe)

func (*AccountTransactionRequestV5) Version

func (a *AccountTransactionRequestV5) Version() int

type AccountTransactionRequestV6

type AccountTransactionRequestV6 struct {
	ClientSegment
	Account               *element.AccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	From                  *element.DateDataElement
	To                    *element.DateDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountTransactionRequestV6) ID

func (*AccountTransactionRequestV6) SetContinuationReference

func (a *AccountTransactionRequestV6) SetContinuationReference(aufsetzpoint string)

func (*AccountTransactionRequestV6) SetTransactionRange

func (a *AccountTransactionRequestV6) SetTransactionRange(timeframe domain.Timeframe)

func (*AccountTransactionRequestV6) Version

func (a *AccountTransactionRequestV6) Version() int

type AccountTransactionRequestV7

type AccountTransactionRequestV7 struct {
	ClientSegment
	InternationalAccount  *element.InternationalAccountConnectionDataElement
	AllAccounts           *element.BooleanDataElement
	From                  *element.DateDataElement
	To                    *element.DateDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*AccountTransactionRequestV7) ID

func (*AccountTransactionRequestV7) SetContinuationReference

func (a *AccountTransactionRequestV7) SetContinuationReference(aufsetzpoint string)

func (*AccountTransactionRequestV7) SetTransactionRange

func (a *AccountTransactionRequestV7) SetTransactionRange(timeframe domain.Timeframe)

func (*AccountTransactionRequestV7) Version

func (a *AccountTransactionRequestV7) Version() int

type AccountTransactionResponse

type AccountTransactionResponse interface {
	BankSegment
	Transactions() []domain.AccountTransaction
}

type AccountTransactionResponseSegment

type AccountTransactionResponseSegment struct {
	AccountTransactionResponse
}

func (*AccountTransactionResponseSegment) UnmarshalHBCI

func (a *AccountTransactionResponseSegment) UnmarshalHBCI(value []byte) error

type AccountTransactionResponseSegmentV5

type AccountTransactionResponseSegmentV5 struct {
	Segment
	BookedTransactions   *element.SwiftMT940DataElement
	UnbookedTransactions *element.BinaryDataElement
}

func (*AccountTransactionResponseSegmentV5) ID

func (*AccountTransactionResponseSegmentV5) Transactions

func (*AccountTransactionResponseSegmentV5) UnmarshalHBCI

func (a *AccountTransactionResponseSegmentV5) UnmarshalHBCI(value []byte) error

func (*AccountTransactionResponseSegmentV5) Version

type AccountTransactionResponseSegmentV6

type AccountTransactionResponseSegmentV6 struct {
	Segment
	BookedTransactions   *element.SwiftMT940DataElement
	UnbookedTransactions *element.BinaryDataElement
}

func (*AccountTransactionResponseSegmentV6) ID

func (*AccountTransactionResponseSegmentV6) Transactions

func (*AccountTransactionResponseSegmentV6) UnmarshalHBCI

func (a *AccountTransactionResponseSegmentV6) UnmarshalHBCI(value []byte) error

func (*AccountTransactionResponseSegmentV6) Version

type AccountTransactionResponseSegmentV7

type AccountTransactionResponseSegmentV7 struct {
	Segment
	BookedTransactions   *element.SwiftMT940DataElement
	UnbookedTransactions *element.BinaryDataElement
}

func (*AccountTransactionResponseSegmentV7) ID

func (*AccountTransactionResponseSegmentV7) Transactions

func (*AccountTransactionResponseSegmentV7) UnmarshalHBCI

func (a *AccountTransactionResponseSegmentV7) UnmarshalHBCI(value []byte) error

func (*AccountTransactionResponseSegmentV7) Version

type BankAnnouncementSegment

type BankAnnouncementSegment struct {
	Segment
	Subject *element.AlphaNumericDataElement
	Body    *element.TextDataElement
}

func (*BankAnnouncementSegment) ID

func (*BankAnnouncementSegment) UnmarshalHBCI

func (b *BankAnnouncementSegment) UnmarshalHBCI(value []byte) error

func (*BankAnnouncementSegment) Version

func (b *BankAnnouncementSegment) Version() int

type BankSegment

type BankSegment interface {
	Segment
	Unmarshaler
}

type Builder added in v0.1.4

type Builder interface {
	AccountBalanceRequest(account domain.AccountConnection, allAccounts bool) (AccountBalanceRequest, error)
	AccountTransactionRequest(account domain.AccountConnection, allAccounts bool) (*AccountTransactionRequestSegment, error)
	SepaAccountTransactionRequest(account domain.InternationalAccountConnection, allAccounts bool) (*AccountTransactionRequestSegment, error)
}

Builder represents a builder which returns certain builders based on the provided versions

func NewBuilder added in v0.1.4

func NewBuilder(supportedSegments []VersionedSegment) Builder

NewBuilder returns a new Builder which uses the supported segments to identify which segment to use

type BusinessTransactionParamsSegment

type BusinessTransactionParamsSegment struct {
	Segment

	MaxJobs       *element.NumberDataElement
	MinSignatures *element.NumberDataElement
	Params        element.DataElementGroup
	// contains filtered or unexported fields
}

func (*BusinessTransactionParamsSegment) ID

func (*BusinessTransactionParamsSegment) UnmarshalHBCI

func (b *BusinessTransactionParamsSegment) UnmarshalHBCI(value []byte) error

func (*BusinessTransactionParamsSegment) Version

type ClientSegment

type ClientSegment interface {
	Segment
	Marshaler
}

type CommonBankParameter

type CommonBankParameter interface {
	BankSegment
	BankParameterData() domain.BankParameterData
}

type CommonBankParameterSegment

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

func (*CommonBankParameterSegment) UnmarshalHBCI

func (c *CommonBankParameterSegment) UnmarshalHBCI(value []byte) error

type CommonBankParameterV2

type CommonBankParameterV2 struct {
	Segment
	BPDVersion               *element.NumberDataElement
	BankID                   *element.BankIdentificationDataElement
	BankName                 *element.AlphaNumericDataElement
	BusinessTransactionCount *element.NumberDataElement
	SupportedLanguages       *element.SupportedLanguagesDataElement
	SupportedHBCIVersions    *element.SupportedHBCIVersionsDataElement
	MaxMessageSize           *element.NumberDataElement
}

func (*CommonBankParameterV2) BankParameterData

func (c *CommonBankParameterV2) BankParameterData() domain.BankParameterData

func (*CommonBankParameterV2) ID

func (c *CommonBankParameterV2) ID() string

func (*CommonBankParameterV2) UnmarshalHBCI

func (c *CommonBankParameterV2) UnmarshalHBCI(value []byte) error

func (*CommonBankParameterV2) Version

func (c *CommonBankParameterV2) Version() int

type CommonBankParameterV3

type CommonBankParameterV3 struct {
	Segment
	BPDVersion               *element.NumberDataElement
	BankID                   *element.BankIdentificationDataElement
	BankName                 *element.AlphaNumericDataElement
	BusinessTransactionCount *element.NumberDataElement
	SupportedLanguages       *element.SupportedLanguagesDataElement
	SupportedHBCIVersions    *element.SupportedHBCIVersionsDataElement
	MaxMessageSize           *element.NumberDataElement
	MinTimeoutValue          *element.NumberDataElement
	MaxTimeoutValue          *element.NumberDataElement
}

func (*CommonBankParameterV3) BankParameterData

func (c *CommonBankParameterV3) BankParameterData() domain.BankParameterData

func (*CommonBankParameterV3) ID

func (c *CommonBankParameterV3) ID() string

func (*CommonBankParameterV3) UnmarshalHBCI

func (c *CommonBankParameterV3) UnmarshalHBCI(value []byte) error

func (*CommonBankParameterV3) Version

func (c *CommonBankParameterV3) Version() int

type CommonSegment

type CommonSegment interface {
	Segment
	Marshaler
	Unmarshaler
}

type CommonUserParameterData

type CommonUserParameterData interface {
	BankSegment
	UserParameterData() domain.UserParameterData
}

type CommonUserParameterDataSegment

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

func (*CommonUserParameterDataSegment) UnmarshalHBCI

func (c *CommonUserParameterDataSegment) UnmarshalHBCI(value []byte) error

type CommonUserParameterDataV2

type CommonUserParameterDataV2 struct {
	Segment
	UserID     *element.IdentificationDataElement
	UPDVersion *element.NumberDataElement
	// Status |Beschreibung
	// -----------------------------------------------------------------
	// 0	  | Die nicht aufgeführten Geschäftsvorfälle sind gesperrt
	//		  | (die aufgeführten Geschäftsvorfälle sind zugelassen).
	// 1    | Bei den nicht aufgeführten Geschäftsvorfällen ist anhand
	//        | der UPD keine Aussage darüber möglich, ob diese erlaubt
	//        | oder gesperrt sind. Diese Prüfung kann nur online vom
	//        | Kreditinstitutssystem vorgenommen werden.
	UPDUsage *element.NumberDataElement
}

func (*CommonUserParameterDataV2) ID

func (*CommonUserParameterDataV2) UnmarshalHBCI

func (c *CommonUserParameterDataV2) UnmarshalHBCI(value []byte) error

func (*CommonUserParameterDataV2) UserParameterData

func (c *CommonUserParameterDataV2) UserParameterData() domain.UserParameterData

func (*CommonUserParameterDataV2) Version

func (c *CommonUserParameterDataV2) Version() int

type CommonUserParameterDataV3

type CommonUserParameterDataV3 struct {
	Segment
	UserID     *element.IdentificationDataElement
	UPDVersion *element.NumberDataElement
	// Status |Beschreibung
	// -----------------------------------------------------------------
	// 0	  | Die nicht aufgeführten Geschäftsvorfälle sind gesperrt
	//		  | (die aufgeführten Geschäftsvorfälle sind zugelassen).
	// 1    | Bei den nicht aufgeführten Geschäftsvorfällen ist anhand
	//        | der UPD keine Aussage darüber möglich, ob diese erlaubt
	//        | oder gesperrt sind. Diese Prüfung kann nur online vom
	//        | Kreditinstitutssystem vorgenommen werden.
	UPDUsage         *element.NumberDataElement
	UserName         *element.AlphaNumericDataElement
	CommonExtensions *element.AlphaNumericDataElement
}

func (*CommonUserParameterDataV3) ID

func (*CommonUserParameterDataV3) UnmarshalHBCI

func (c *CommonUserParameterDataV3) UnmarshalHBCI(value []byte) error

func (*CommonUserParameterDataV3) UserParameterData

func (c *CommonUserParameterDataV3) UserParameterData() domain.UserParameterData

func (*CommonUserParameterDataV3) Version

func (c *CommonUserParameterDataV3) Version() int

type CommonUserParameterDataV4

type CommonUserParameterDataV4 struct {
	Segment
	UserID     *element.IdentificationDataElement
	UPDVersion *element.NumberDataElement
	// Status |Beschreibung
	// -----------------------------------------------------------------
	// 0	  | Die nicht aufgeführten Geschäftsvorfälle sind gesperrt
	//		  | (die aufgeführten Geschäftsvorfälle sind zugelassen).
	// 1    | Bei den nicht aufgeführten Geschäftsvorfällen ist anhand
	//        | der UPD keine Aussage darüber möglich, ob diese erlaubt
	//        | oder gesperrt sind. Diese Prüfung kann nur online vom
	//        | Kreditinstitutssystem vorgenommen werden.
	UPDUsage         *element.NumberDataElement
	UserName         *element.AlphaNumericDataElement
	CommonExtensions *element.AlphaNumericDataElement
}

func (*CommonUserParameterDataV4) ID

func (*CommonUserParameterDataV4) UnmarshalHBCI

func (c *CommonUserParameterDataV4) UnmarshalHBCI(value []byte) error

func (*CommonUserParameterDataV4) UserParameterData

func (c *CommonUserParameterDataV4) UserParameterData() domain.UserParameterData

func (*CommonUserParameterDataV4) Version

func (c *CommonUserParameterDataV4) Version() int

type CommunicationAccessRequestSegment

type CommunicationAccessRequestSegment struct {
	ClientSegment
	FromBankID            *element.BankIdentificationDataElement
	ToBankID              *element.BankIdentificationDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func NewCommunicationAccessRequestSegment

func NewCommunicationAccessRequestSegment(fromBank domain.BankID, toBank domain.BankID, maxEntries int, continuationReference string) *CommunicationAccessRequestSegment

func (*CommunicationAccessRequestSegment) ID

func (*CommunicationAccessRequestSegment) Version

type CommunicationAccessResponseSegment

type CommunicationAccessResponseSegment struct {
	Segment
	BankID              *element.BankIdentificationDataElement
	StandardLanguage    *element.NumberDataElement
	CommunicationParams *element.CommunicationParameterDataElement
}

func NewCommunicationAccessResponseSegment

func NewCommunicationAccessResponseSegment(bankId domain.BankID, language int, params domain.CommunicationParameter) *CommunicationAccessResponseSegment

func (*CommunicationAccessResponseSegment) ID

func (*CommunicationAccessResponseSegment) UnmarshalHBCI

func (c *CommunicationAccessResponseSegment) UnmarshalHBCI(value []byte) error

func (*CommunicationAccessResponseSegment) Version

type CompressionMethodSegment

type CompressionMethodSegment struct {
	Segment
	SupportedCompressionMethods *element.SupportedCompressionMethodsDataElement
}

func (*CompressionMethodSegment) ID

func (*CompressionMethodSegment) UnmarshalHBCI

func (c *CompressionMethodSegment) UnmarshalHBCI(value []byte) error

func (*CompressionMethodSegment) Version

func (c *CompressionMethodSegment) Version() int

type DialogEndSegment

type DialogEndSegment struct {
	ClientSegment
	DialogID *element.IdentificationDataElement
}

func NewDialogEndSegment

func NewDialogEndSegment(dialogId string) *DialogEndSegment

func (*DialogEndSegment) ID

func (d *DialogEndSegment) ID() string

func (*DialogEndSegment) Version

func (d *DialogEndSegment) Version() int

type EncryptedDataSegment

type EncryptedDataSegment struct {
	ClientSegment
	Data *element.BinaryDataElement
}

func NewEncryptedDataSegment

func NewEncryptedDataSegment(encryptedData []byte) *EncryptedDataSegment

func (*EncryptedDataSegment) ID

func (e *EncryptedDataSegment) ID() string

func (*EncryptedDataSegment) UnmarshalHBCI

func (e *EncryptedDataSegment) UnmarshalHBCI(value []byte) error

func (*EncryptedDataSegment) Version

func (e *EncryptedDataSegment) Version() int

type EncryptionHeader

type EncryptionHeader interface {
	ClientSegment
	SetClientSystemID(clientSystemID string)
	SetSecurityProfile(securityFn string)
	SetEncryptionKeyName(keyName domain.KeyName)
	SetEncryptionAlgorithm(algorithm *element.EncryptionAlgorithmDataElement)
}

type EncryptionHeaderSegment

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

func NewEncryptionHeaderSegment

func NewEncryptionHeaderSegment(clientSystemId string, keyName domain.KeyName, key []byte) *EncryptionHeaderSegment

func NewPinTanEncryptionHeaderSegment

func NewPinTanEncryptionHeaderSegment(clientSystemId string, keyName domain.KeyName) *EncryptionHeaderSegment

func NewPinTanEncryptionHeaderSegmentV3

func NewPinTanEncryptionHeaderSegmentV3(clientSystemId string, keyName domain.KeyName) *EncryptionHeaderSegment

func (*EncryptionHeaderSegment) UnmarshalHBCI

func (e *EncryptionHeaderSegment) UnmarshalHBCI(value []byte) error

type EncryptionHeaderSegmentV3

type EncryptionHeaderSegmentV3 struct {
	ClientSegment
	SecurityProfile *element.SecurityProfileDataElement
	// "4" for ENC, Encryption (encryption and eventually compression)
	// "998" for Cleartext
	SecurityFunction *element.CodeDataElement
	// "1" for ISS,  Herausgeber der chiffrierten Nachricht (Erfasser)
	// "4" for WIT, der Unterzeichnete ist Zeuge, aber für den Inhalt der
	// Nachricht nicht verantwortlich (Übermittler, welcher nicht Erfasser ist)
	SecuritySupplierRole *element.CodeDataElement
	SecurityID           *element.SecurityIdentificationDataElement
	SecurityDate         *element.SecurityDateDataElement
	EncryptionAlgorithm  *element.EncryptionAlgorithmDataElement
	KeyName              *element.KeyNameDataElement
	// 0: no compression (NULL)
	// 1: Lempel, Ziv, Welch (LZW)
	// 2: Optimized LZW (COM)
	// 3: Lempel, Ziv (LZSS)
	// 4: LZ + Huffman Coding (LZHuf)
	// 5: PKZIP (ZIP)
	// 6: deflate (GZIP) (http://www.gzip.org/zlib)
	// 7: bzip2 (http://sourceware.cygnus.com/bzip2/)
	// 999: Gegenseitig vereinbart (ZZZ)
	CompressionFunction *element.CodeDataElement
	Certificate         *element.CertificateDataElement
}

func (*EncryptionHeaderSegmentV3) ID

func (*EncryptionHeaderSegmentV3) SetClientSystemID

func (e *EncryptionHeaderSegmentV3) SetClientSystemID(clientSystemId string)

func (*EncryptionHeaderSegmentV3) SetEncryptionAlgorithm

func (e *EncryptionHeaderSegmentV3) SetEncryptionAlgorithm(algorithm *element.EncryptionAlgorithmDataElement)

func (*EncryptionHeaderSegmentV3) SetEncryptionKeyName

func (e *EncryptionHeaderSegmentV3) SetEncryptionKeyName(keyName domain.KeyName)

func (*EncryptionHeaderSegmentV3) SetSecurityProfile

func (e *EncryptionHeaderSegmentV3) SetSecurityProfile(securityFn string)

func (*EncryptionHeaderSegmentV3) UnmarshalHBCI

func (e *EncryptionHeaderSegmentV3) UnmarshalHBCI(value []byte) error

func (*EncryptionHeaderSegmentV3) Version

func (e *EncryptionHeaderSegmentV3) Version() int

type EncryptionHeaderV2

type EncryptionHeaderV2 struct {
	ClientSegment
	// "4" for ENC, Encryption (encryption and eventually compression)
	// "998" for Cleartext
	SecurityFunction *element.AlphaNumericDataElement
	// "1" for ISS,  Herausgeber der chiffrierten Nachricht (Erfasser)
	// "4" for WIT, der Unterzeichnete ist Zeuge, aber für den Inhalt der
	// Nachricht nicht verantwortlich (Übermittler, welcher nicht Erfasser ist)
	SecuritySupplierRole *element.AlphaNumericDataElement
	SecurityID           *element.SecurityIdentificationDataElement
	SecurityDate         *element.SecurityDateDataElement
	EncryptionAlgorithm  *element.EncryptionAlgorithmDataElement
	KeyName              *element.KeyNameDataElement
	CompressionFunction  *element.AlphaNumericDataElement
	Certificate          *element.CertificateDataElement
}

func (*EncryptionHeaderV2) ID

func (e *EncryptionHeaderV2) ID() string

func (*EncryptionHeaderV2) SetClientSystemID

func (e *EncryptionHeaderV2) SetClientSystemID(clientSystemId string)

func (*EncryptionHeaderV2) SetEncryptionAlgorithm

func (e *EncryptionHeaderV2) SetEncryptionAlgorithm(algorithm *element.EncryptionAlgorithmDataElement)

func (*EncryptionHeaderV2) SetEncryptionKeyName

func (e *EncryptionHeaderV2) SetEncryptionKeyName(keyName domain.KeyName)

func (*EncryptionHeaderV2) SetSecurityProfile

func (e *EncryptionHeaderV2) SetSecurityProfile(securityFn string)

func (*EncryptionHeaderV2) UnmarshalHBCI

func (e *EncryptionHeaderV2) UnmarshalHBCI(value []byte) error

func (*EncryptionHeaderV2) Version

func (e *EncryptionHeaderV2) Version() int

type HBCIVersion

type HBCIVersion struct {
	PinTanEncryptionHeader        func(clientSystemId string, keyName domain.KeyName) *EncryptionHeaderSegment
	RDHEncryptionHeader           func(clientSystemId string, keyName domain.KeyName, key []byte) *EncryptionHeaderSegment
	SignatureHeader               func() *SignatureHeaderSegment
	PinTanSignatureHeader         func(controlReference string, clientSystemId string, keyName domain.KeyName) *SignatureHeaderSegment
	RDHSignatureHeader            func(controlReference string, signatureId int, clientSystemId string, keyName domain.KeyName) *SignatureHeaderSegment
	SignatureEnd                  func() *SignatureEndSegment
	SynchronisationRequest        func(modus SyncMode) *SynchronisationRequestSegment
	AccountBalanceRequest         func(account domain.AccountConnection, allAccounts bool) AccountBalanceRequest
	AccountTransactionRequest     func(account domain.AccountConnection, allAccounts bool) *AccountTransactionRequestSegment
	SepaAccountTransactionRequest func(account domain.InternationalAccountConnection, allAccounts bool) *AccountTransactionRequestSegment
	StatusProtocolRequest         func(from, to time.Time, maxEntries int, continuationReference string) StatusProtocolRequest
	// contains filtered or unexported fields
}

HBCIVersion defines segment constructors for a HBCI version

func (HBCIVersion) Version

func (v HBCIVersion) Version() int

Version returns the HBCI version as integer

type IdentificationSegment

type IdentificationSegment struct {
	ClientSegment
	BankId             *element.BankIdentificationDataElement
	ClientId           *element.IdentificationDataElement
	ClientSystemId     *element.IdentificationDataElement
	ClientSystemStatus *element.NumberDataElement
}

func NewIdentificationSegment

func NewIdentificationSegment(bankId domain.BankID, clientId string, clientSystemId string, systemIdRequired bool) *IdentificationSegment

func (*IdentificationSegment) ID

func (i *IdentificationSegment) ID() string

func (*IdentificationSegment) Version

func (i *IdentificationSegment) Version() int

type Marshaler

type Marshaler interface {
	MarshalHBCI() ([]byte, error)
}

type MessageAcknowledgement

type MessageAcknowledgement struct {
	Segment
	// contains filtered or unexported fields
}

func (*MessageAcknowledgement) Acknowledgements

func (m *MessageAcknowledgement) Acknowledgements() []domain.Acknowledgement

func (*MessageAcknowledgement) ID

func (*MessageAcknowledgement) SetReferencingMessage

func (m *MessageAcknowledgement) SetReferencingMessage(reference domain.ReferencingMessage)

func (*MessageAcknowledgement) UnmarshalHBCI

func (m *MessageAcknowledgement) UnmarshalHBCI(value []byte) error

func (*MessageAcknowledgement) Version

func (m *MessageAcknowledgement) Version() int

type MessageEndSegment

type MessageEndSegment struct {
	ClientSegment
	Number *element.NumberDataElement
}

func NewMessageEndSegment

func NewMessageEndSegment(segmentNumber, messageNumber int) *MessageEndSegment

func (*MessageEndSegment) ID

func (m *MessageEndSegment) ID() string

func (*MessageEndSegment) UnmarshalHBCI

func (m *MessageEndSegment) UnmarshalHBCI(value []byte) error

func (*MessageEndSegment) Version

func (m *MessageEndSegment) Version() int

type MessageHeaderSegment

func NewMessageHeaderSegment

func NewMessageHeaderSegment(size int, hbciVersion int, dialogId string, number int) *MessageHeaderSegment

func NewReferencingMessageHeaderSegment

func NewReferencingMessageHeaderSegment(size int, hbciVersion int, dialogId string, number int, referencingMessage domain.ReferencingMessage) *MessageHeaderSegment

func (*MessageHeaderSegment) ID

func (m *MessageHeaderSegment) ID() string

func (*MessageHeaderSegment) ReferencingMessage

func (m *MessageHeaderSegment) ReferencingMessage() domain.ReferencingMessage

func (*MessageHeaderSegment) SetMessageNumber

func (m *MessageHeaderSegment) SetMessageNumber(messageNumber int)

func (*MessageHeaderSegment) SetSize

func (m *MessageHeaderSegment) SetSize(size int)

func (*MessageHeaderSegment) UnmarshalHBCI

func (m *MessageHeaderSegment) UnmarshalHBCI(value []byte) error

func (*MessageHeaderSegment) Version

func (m *MessageHeaderSegment) Version() int

type PinTanBusinessTransactionParams

type PinTanBusinessTransactionParams interface {
	BankSegment
	PinTanBusinessTransactions() []domain.PinTanBusinessTransaction
}

type PinTanBusinessTransactionParamsSegment

type PinTanBusinessTransactionParamsSegment struct {
	*BusinessTransactionParamsSegment
}

func (*PinTanBusinessTransactionParamsSegment) ID

func (*PinTanBusinessTransactionParamsSegment) PinTanBusinessTransactions

func (*PinTanBusinessTransactionParamsSegment) UnmarshalHBCI

func (p *PinTanBusinessTransactionParamsSegment) UnmarshalHBCI(value []byte) error

func (*PinTanBusinessTransactionParamsSegment) Version

type ProcessingPreparationSegment

type ProcessingPreparationSegment struct {
	ClientSegment
	BPDVersion *element.NumberDataElement
	UPDVersion *element.NumberDataElement
	// 0 for undefined
	// Sprachkennzeichen | Bedeutung   | Sprachencode ISO 639 | ISO 8859 Subset | ISO 8859- Codeset
	// --------------------------------------------------------------------------------------------
	// 1				 | Deutsch	   | de (German) 	      | Deutsch  		| 1 (Latin 1)
	// 2				 | Englisch	   | en (English)		  | Englisch		| 1 (Latin 1)
	// 3 				 | Französisch | fr (French)  		  | Französisch 	| 1 (Latin 1)
	DialogLanguage *element.NumberDataElement
	ProductName    *element.AlphaNumericDataElement
	ProductVersion *element.AlphaNumericDataElement
}

func NewProcessingPreparationSegment

func NewProcessingPreparationSegment(bdpVersion int, udpVersion int, language domain.Language) *ProcessingPreparationSegment

func (*ProcessingPreparationSegment) ID

func (*ProcessingPreparationSegment) Version

func (p *ProcessingPreparationSegment) Version() int

type PublicKeyRenewalSegment

type PublicKeyRenewalSegment struct {
	Segment
	// "2" für ‘Key-Management-Nachricht erwartet Antwort’
	MessageID *element.NumberDataElement
	// "112" für ‘Certificate Replacement’ (Ersatz des Zertifikats))
	FunctionID *element.NumberDataElement
	// Key type may not equal 'B'
	KeyName     *element.KeyNameDataElement
	PublicKey   *element.PublicKeyDataElement
	Certificate *element.CertificateDataElement
}

func NewPublicKeyRenewalSegment

func NewPublicKeyRenewalSegment(number int, keyName domain.KeyName, pubKey *domain.PublicKey) *PublicKeyRenewalSegment

func (*PublicKeyRenewalSegment) ID

func (*PublicKeyRenewalSegment) Version

func (p *PublicKeyRenewalSegment) Version() int

type PublicKeyRequestSegment

type PublicKeyRequestSegment struct {
	ClientSegment
	// "2" für ‘Key-Management-Nachricht erwartet Antwort’
	MessageID *element.NumberDataElement
	// "124" für ‘Certificate Status Request’
	FunctionID  *element.NumberDataElement
	KeyName     *element.KeyNameDataElement
	Certificate *element.CertificateDataElement
}

func NewPublicKeyRequestSegment

func NewPublicKeyRequestSegment(number int, keyName domain.KeyName) *PublicKeyRequestSegment

func (*PublicKeyRequestSegment) ID

func (*PublicKeyRequestSegment) Version

func (p *PublicKeyRequestSegment) Version() int

type PublicKeyRevocationConfirmationSegment

type PublicKeyRevocationConfirmationSegment struct {
	Segment
	// "1" für ‘Key-Management-Nachricht ist Antwort’
	MessageID  *element.NumberDataElement
	DialogID   *element.IdentificationDataElement
	MessageRef *element.NumberDataElement
	// "231" für ‘Revocation Confirmation’ (Bestätigung des Zertifikatswiderrufs)
	FunctionID *element.NumberDataElement
	KeyName    *element.KeyNameDataElement
	// "1" für ‘Schlüssel des Zertifikatseigentümers kompromittiert’
	// "501" für ‘Zertifikat ungültig wegen Verdacht auf Kompromittierung’
	// "999" für ‘gesperrt aus sonstigen Gründen’
	RevocationReason *element.AlphaNumericDataElement
	Date             *element.SecurityDateDataElement
	Certificate      *element.CertificateDataElement
}

func NewPublicKeyRevocationConfirmationSegment

func NewPublicKeyRevocationConfirmationSegment(dialogId string, number int, messageReference int, keyName domain.KeyName, reason string, refSegment *PublicKeyRevocationSegment) *PublicKeyRevocationConfirmationSegment

func (*PublicKeyRevocationConfirmationSegment) ID

func (*PublicKeyRevocationConfirmationSegment) Version

type PublicKeyRevocationSegment

type PublicKeyRevocationSegment struct {
	Segment
	// "2" für ‘Key-Management-Nachricht erwartet Antwort’
	MessageID *element.NumberDataElement
	// "130" für ‘Certificate Revocation’ (Zertifikatswiderruf)
	FunctionID *element.NumberDataElement
	KeyName    *element.KeyNameDataElement
	// "1" für ‘Schlüssel des Zertifikatseigentümers kompromittiert’
	// "501" für ‘Zertifikat ungültig wegen Verdacht auf Kompromittierung’
	// "999" für ‘gesperrt aus sonstigen Gründen’
	RevocationReason *element.AlphaNumericDataElement
	Date             *element.SecurityDateDataElement
	Certificate      *element.CertificateDataElement
}

func NewPublicKeyRevocationSegment

func NewPublicKeyRevocationSegment(number int, keyName domain.KeyName, reason string) *PublicKeyRevocationSegment

func (*PublicKeyRevocationSegment) ID

func (*PublicKeyRevocationSegment) Version

func (p *PublicKeyRevocationSegment) Version() int

type PublicKeyTransmissionSegment

type PublicKeyTransmissionSegment struct {
	Segment
	// "1" für ‘Key-Management-Nachricht ist Antwort’
	MessageID  *element.NumberDataElement
	DialogID   *element.IdentificationDataElement
	MessageRef *element.NumberDataElement
	// "224" für ‘Certificate Status Notice’
	FunctionID  *element.NumberDataElement
	KeyName     *element.KeyNameDataElement
	PublicKey   *element.PublicKeyDataElement
	Certificate *element.CertificateDataElement
}

func NewPublicKeyTransmissionSegment

func NewPublicKeyTransmissionSegment(dialogId string, number int, messageReference int, keyName domain.KeyName, pubKey *domain.PublicKey, refSegment *PublicKeyRequestSegment) *PublicKeyTransmissionSegment

func (*PublicKeyTransmissionSegment) ID

func (*PublicKeyTransmissionSegment) Version

func (p *PublicKeyTransmissionSegment) Version() int

type SecurityMethodSegment

type SecurityMethodSegment struct {
	Segment
	MixAllowed       *element.BooleanDataElement
	SupportedMethods *element.SupportedSecurityMethodDataElement
}

func (*SecurityMethodSegment) ID

func (s *SecurityMethodSegment) ID() string

func (*SecurityMethodSegment) UnmarshalHBCI

func (s *SecurityMethodSegment) UnmarshalHBCI(value []byte) error

func (*SecurityMethodSegment) Version

func (s *SecurityMethodSegment) Version() int

type Segment

type Segment interface {
	Header() *element.SegmentHeader
	SetNumber(func() int)
	String() string
}

type SegmentAcknowledgement

type SegmentAcknowledgement struct {
	Segment
	// contains filtered or unexported fields
}

func (*SegmentAcknowledgement) Acknowledgements

func (s *SegmentAcknowledgement) Acknowledgements() []domain.Acknowledgement

func (*SegmentAcknowledgement) ID

func (*SegmentAcknowledgement) SetReferencingMessage

func (s *SegmentAcknowledgement) SetReferencingMessage(reference domain.ReferencingMessage)

func (*SegmentAcknowledgement) UnmarshalHBCI

func (s *SegmentAcknowledgement) UnmarshalHBCI(value []byte) error

func (*SegmentAcknowledgement) Version

func (s *SegmentAcknowledgement) Version() int

type SegmentIndex

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

func (SegmentIndex) IsIndexed

func (s SegmentIndex) IsIndexed(segmentId VersionedSegment) bool

func (SegmentIndex) IsUnmarshaler

func (s SegmentIndex) IsUnmarshaler(segmentId VersionedSegment) bool

func (SegmentIndex) UnmarshalerForSegment

func (s SegmentIndex) UnmarshalerForSegment(segmentId VersionedSegment) (Unmarshaler, error)

type SignatureEnd

type SignatureEnd interface {
	SetControlReference(controlReference string)
	SetSignature(signature []byte)
	SetPinTan(pin, tan string)
}

type SignatureEndSegment

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

func NewSignatureEndSegmentV1

func NewSignatureEndSegmentV1() *SignatureEndSegment

func NewSignatureEndSegmentV2

func NewSignatureEndSegmentV2() *SignatureEndSegment

type SignatureEndV1

type SignatureEndV1 struct {
	ClientSegment
	SecurityControlRef *element.AlphaNumericDataElement
	Signature          *element.BinaryDataElement
	PinTan             *element.PinTanDataElement
}

func (*SignatureEndV1) ID

func (s *SignatureEndV1) ID() string

func (*SignatureEndV1) SetControlReference

func (s *SignatureEndV1) SetControlReference(controlReference string)

func (*SignatureEndV1) SetPinTan

func (s *SignatureEndV1) SetPinTan(pin, tan string)

func (*SignatureEndV1) SetSignature

func (s *SignatureEndV1) SetSignature(signature []byte)

func (*SignatureEndV1) Version

func (s *SignatureEndV1) Version() int

type SignatureEndV2

type SignatureEndV2 struct {
	ClientSegment
	SecurityControlRef *element.AlphaNumericDataElement
	Signature          *element.BinaryDataElement
	CustomSignature    *element.CustomSignatureDataElement
}

func (*SignatureEndV2) ID

func (s *SignatureEndV2) ID() string

func (*SignatureEndV2) SetControlReference

func (s *SignatureEndV2) SetControlReference(controlReference string)

func (*SignatureEndV2) SetPinTan

func (s *SignatureEndV2) SetPinTan(pin, tan string)

func (*SignatureEndV2) SetSignature

func (s *SignatureEndV2) SetSignature(signature []byte)

func (*SignatureEndV2) Version

func (s *SignatureEndV2) Version() int

type SignatureHeader

type SignatureHeader interface {
	ClientSegment
	SetClientSystemID(clientSystemID string)
	SetSigningKeyName(keyName domain.KeyName)
	SetSignatureID(signatureId int)
	SetSecurityFunction(string)
	SetControlReference(string)
}

type SignatureHeaderSegment

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

func NewPinTanSignatureHeaderSegment

func NewPinTanSignatureHeaderSegment(controlReference string, clientSystemId string, keyName domain.KeyName) *SignatureHeaderSegment

func NewPinTanSignatureHeaderSegmentV4

func NewPinTanSignatureHeaderSegmentV4(controlReference string, clientSystemId string, keyName domain.KeyName) *SignatureHeaderSegment

func NewRDHSignatureHeaderSegment

func NewRDHSignatureHeaderSegment(controlReference string, signatureId int, clientSystemId string, keyName domain.KeyName) *SignatureHeaderSegment

func NewSignatureHeaderSegmentV3

func NewSignatureHeaderSegmentV3() *SignatureHeaderSegment

func NewSignatureHeaderSegmentV4

func NewSignatureHeaderSegmentV4() *SignatureHeaderSegment

func (*SignatureHeaderSegment) UnmarshalHBCI

func (s *SignatureHeaderSegment) UnmarshalHBCI(value []byte) error

type SignatureHeaderSegmentV4

type SignatureHeaderSegmentV4 struct {
	ClientSegment
	SecurityProfile *element.SecurityProfileDataElement
	// "1" for NRO, Non-Repudiation of Origin (RDH)
	// "2" for AUT, Message Origin Authentication (DDV)
	// "999" for PIN/TAN
	SecurityFunction   *element.CodeDataElement
	SecurityControlRef *element.AlphaNumericDataElement
	// "1" for SHM (SignatureHeader and HBCI-Data)
	// "2" for SHT (SignatureHeader to SignatureEnd)
	SecurityApplicationRange *element.CodeDataElement
	// "1" for ISS, Herausgeber der signierten Nachricht (z.B. Erfasser oder Erstsignatur)
	// "3" for CON, der Unterzeichnete unterstützt den Inhalt der Nachricht (z.B. bei Zweitsignatur)
	// "4" for WIT, der Unterzeichnete ist Zeuge (z.B. Übermittler), aber für den Inhalt der Nachricht nicht verantwortlich)
	SecuritySupplierRole *element.CodeDataElement
	SecurityID           *element.SecurityIdentificationDataElement
	SecurityRefNumber    *element.NumberDataElement
	SecurityDate         *element.SecurityDateDataElement
	HashAlgorithm        *element.HashAlgorithmDataElement
	SignatureAlgorithm   *element.SignatureAlgorithmDataElement
	KeyName              *element.KeyNameDataElement
	Certificate          *element.CertificateDataElement
}

func (*SignatureHeaderSegmentV4) ID

func (*SignatureHeaderSegmentV4) SetClientSystemID

func (s *SignatureHeaderSegmentV4) SetClientSystemID(clientSystemId string)

func (*SignatureHeaderSegmentV4) SetControlReference

func (s *SignatureHeaderSegmentV4) SetControlReference(controlReference string)

func (*SignatureHeaderSegmentV4) SetSecurityFunction

func (s *SignatureHeaderSegmentV4) SetSecurityFunction(securityFn string)

func (*SignatureHeaderSegmentV4) SetSignatureID

func (s *SignatureHeaderSegmentV4) SetSignatureID(signatureId int)

func (*SignatureHeaderSegmentV4) SetSigningKeyName

func (s *SignatureHeaderSegmentV4) SetSigningKeyName(keyName domain.KeyName)

func (*SignatureHeaderSegmentV4) UnmarshalHBCI

func (s *SignatureHeaderSegmentV4) UnmarshalHBCI(value []byte) error

func (*SignatureHeaderSegmentV4) Version

func (s *SignatureHeaderSegmentV4) Version() int

type SignatureHeaderV3

type SignatureHeaderV3 struct {
	ClientSegment
	// "1" for NRO, Non-Repudiation of Origin (RDH)
	// "2" for AUT, Message Origin Authentication (DDV)
	// "999" for PIN/TAN
	SecurityFunction   *element.AlphaNumericDataElement
	SecurityControlRef *element.AlphaNumericDataElement
	// "1" for SHM (SignatureHeader and HBCI-Data)
	// "2" for SHT (SignatureHeader to SignatureEnd)
	SecurityApplicationRange *element.AlphaNumericDataElement
	// "1" for ISS, Herausgeber der signierten Nachricht (z.B. Erfasser oder Erstsignatur)
	// "3" for CON, der Unterzeichnete unterstützt den Inhalt der Nachricht (z.B. bei Zweitsignatur)
	// "4" for WIT, der Unterzeichnete ist Zeuge (z.B. Übermittler), aber für den Inhalt der Nachricht nicht verantwortlich)
	SecuritySupplierRole *element.AlphaNumericDataElement
	SecurityID           *element.SecurityIdentificationDataElement
	SecurityRefNumber    *element.NumberDataElement
	SecurityDate         *element.SecurityDateDataElement
	HashAlgorithm        *element.HashAlgorithmDataElement
	SignatureAlgorithm   *element.SignatureAlgorithmDataElement
	KeyName              *element.KeyNameDataElement
	Certificate          *element.CertificateDataElement
}

func (*SignatureHeaderV3) ID

func (s *SignatureHeaderV3) ID() string

func (*SignatureHeaderV3) SetClientSystemID

func (s *SignatureHeaderV3) SetClientSystemID(clientSystemId string)

func (*SignatureHeaderV3) SetControlReference

func (s *SignatureHeaderV3) SetControlReference(controlReference string)

func (*SignatureHeaderV3) SetSecurityFunction

func (s *SignatureHeaderV3) SetSecurityFunction(securityFn string)

func (*SignatureHeaderV3) SetSignatureID

func (s *SignatureHeaderV3) SetSignatureID(signatureId int)

func (*SignatureHeaderV3) SetSigningKeyName

func (s *SignatureHeaderV3) SetSigningKeyName(keyName domain.KeyName)

func (*SignatureHeaderV3) UnmarshalHBCI

func (s *SignatureHeaderV3) UnmarshalHBCI(value []byte) error

func (*SignatureHeaderV3) Version

func (s *SignatureHeaderV3) Version() int

type StatusProtocolRequest

type StatusProtocolRequest interface {
	ClientSegment
}

func NewStatusProtocolRequestV3

func NewStatusProtocolRequestV3(from, to time.Time, maxEntries int, continuationReference string) StatusProtocolRequest

func NewStatusProtocolRequestV4

func NewStatusProtocolRequestV4(from, to time.Time, maxEntries int, continuationReference string) StatusProtocolRequest

type StatusProtocolRequestSegmentV3

type StatusProtocolRequestSegmentV3 struct {
	ClientSegment
	From                  *element.DateDataElement
	To                    *element.DateDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*StatusProtocolRequestSegmentV3) ID

func (*StatusProtocolRequestSegmentV3) Version

func (s *StatusProtocolRequestSegmentV3) Version() int

type StatusProtocolRequestSegmentV4

type StatusProtocolRequestSegmentV4 struct {
	ClientSegment
	From                  *element.DateDataElement
	To                    *element.DateDataElement
	MaxEntries            *element.NumberDataElement
	ContinuationReference *element.AlphaNumericDataElement
}

func (*StatusProtocolRequestSegmentV4) ID

func (*StatusProtocolRequestSegmentV4) Version

func (s *StatusProtocolRequestSegmentV4) Version() int

type StatusProtocolResponse

type StatusProtocolResponse interface {
	BankSegment
	Status() domain.StatusAcknowledgement
}

type StatusProtocolResponseSegment

type StatusProtocolResponseSegment struct {
	StatusProtocolResponse
}

func (*StatusProtocolResponseSegment) UnmarshalHBCI

func (s *StatusProtocolResponseSegment) UnmarshalHBCI(value []byte) error

type StatusProtocolResponseSegmentV3

type StatusProtocolResponseSegmentV3 struct {
	Segment
	ReferencingMessage *element.ReferencingMessageDataElement
	ReferencingSegment *element.NumberDataElement
	Date               *element.DateDataElement
	Time               *element.TimeDataElement
	Acknowledgement    *element.AcknowledgementDataElement
}

func (*StatusProtocolResponseSegmentV3) ID

func (*StatusProtocolResponseSegmentV3) Status

func (*StatusProtocolResponseSegmentV3) UnmarshalHBCI

func (s *StatusProtocolResponseSegmentV3) UnmarshalHBCI(value []byte) error

func (*StatusProtocolResponseSegmentV3) Version

func (s *StatusProtocolResponseSegmentV3) Version() int

type StatusProtocolResponseSegmentV4

type StatusProtocolResponseSegmentV4 struct {
	Segment
	ReferencingMessage *element.ReferencingMessageDataElement
	ReferencingSegment *element.NumberDataElement
	Date               *element.DateDataElement
	Time               *element.TimeDataElement
	Acknowledgement    *element.AcknowledgementDataElement
}

func (*StatusProtocolResponseSegmentV4) ID

func (*StatusProtocolResponseSegmentV4) Status

func (*StatusProtocolResponseSegmentV4) Version

func (s *StatusProtocolResponseSegmentV4) Version() int

type SyncMode added in v0.1.3

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

type SynchronisationRequestSegment

type SynchronisationRequestSegment struct {
	ClientSegment
}

func NewSynchronisationSegmentV2

func NewSynchronisationSegmentV2(modus SyncMode) *SynchronisationRequestSegment

func NewSynchronisationSegmentV3

func NewSynchronisationSegmentV3(modus SyncMode) *SynchronisationRequestSegment

type SynchronisationRequestV2

type SynchronisationRequestV2 struct {
	ClientSegment
	// Code | Bedeutung
	// ---------------------------------------------------------
	// 0  | Neue Kundensystem-ID zurückmelden
	// 1	| Letzte verarbeitete Nachrichtennummer zurückmelden  
	// 2  | Signatur-ID zurückmelden
	SyncModus *element.NumberDataElement
}

func (*SynchronisationRequestV2) ID

func (*SynchronisationRequestV2) Version

func (s *SynchronisationRequestV2) Version() int

type SynchronisationRequestV3

type SynchronisationRequestV3 struct {
	ClientSegment
	// Code | Bedeutung
	// ---------------------------------------------------------
	// 0  | Neue Kundensystem-ID zurückmelden
	// 1	| Letzte verarbeitete Nachrichtennummer zurückmelden  
	// 2  | Signatur-ID zurückmelden
	SyncModus *element.CodeDataElement
}

func (*SynchronisationRequestV3) ID

func (*SynchronisationRequestV3) Version

func (s *SynchronisationRequestV3) Version() int

type SynchronisationResponse

type SynchronisationResponse interface {
	BankSegment
	ClientSystemID() string
	LastMessageNumber() int
	SignatureID() int
}

type SynchronisationResponseSegment

type SynchronisationResponseSegment struct {
	SynchronisationResponse
}

func (*SynchronisationResponseSegment) UnmarshalHBCI

func (s *SynchronisationResponseSegment) UnmarshalHBCI(value []byte) error

type SynchronisationResponseSegmentV3

type SynchronisationResponseSegmentV3 struct {
	Segment
	ClientSystemIDResponse *element.IdentificationDataElement
	MessageNumberResponse  *element.NumberDataElement
	SignatureIDResponse    *element.NumberDataElement
}

func (*SynchronisationResponseSegmentV3) ClientSystemID

func (s *SynchronisationResponseSegmentV3) ClientSystemID() string

func (*SynchronisationResponseSegmentV3) ID

func (*SynchronisationResponseSegmentV3) LastMessageNumber

func (s *SynchronisationResponseSegmentV3) LastMessageNumber() int

func (*SynchronisationResponseSegmentV3) SignatureID

func (s *SynchronisationResponseSegmentV3) SignatureID() int

func (*SynchronisationResponseSegmentV3) UnmarshalHBCI

func (s *SynchronisationResponseSegmentV3) UnmarshalHBCI(value []byte) error

func (*SynchronisationResponseSegmentV3) Version

type SynchronisationResponseSegmentV4

type SynchronisationResponseSegmentV4 struct {
	Segment
	ClientSystemIDResponse *element.IdentificationDataElement
	MessageNumberResponse  *element.NumberDataElement
	SignatureIDResponse    *element.NumberDataElement
}

func (*SynchronisationResponseSegmentV4) ClientSystemID

func (s *SynchronisationResponseSegmentV4) ClientSystemID() string

func (*SynchronisationResponseSegmentV4) ID

func (*SynchronisationResponseSegmentV4) LastMessageNumber

func (s *SynchronisationResponseSegmentV4) LastMessageNumber() int

func (*SynchronisationResponseSegmentV4) SignatureID

func (s *SynchronisationResponseSegmentV4) SignatureID() int

func (*SynchronisationResponseSegmentV4) UnmarshalHBCI

func (s *SynchronisationResponseSegmentV4) UnmarshalHBCI(value []byte) error

func (*SynchronisationResponseSegmentV4) Version

type TanRequestSegment

type TanRequestSegment struct {
	Segment
	TANProcess        *element.AlphaNumericDataElement
	JobHash           *element.BinaryDataElement
	JobReference      *element.AlphaNumericDataElement
	TanListNumber     *element.AlphaNumericDataElement
	AnotherTanFollows *element.BooleanDataElement
	TANInformation    *element.AlphaNumericDataElement
}

func NewTanRequestProcess2

func NewTanRequestProcess2(jobReference string, anotherTANFollows bool) *TanRequestSegment

func NewTanRequestProcess4

func NewTanRequestProcess4() *TanRequestSegment

func (*TanRequestSegment) ID

func (t *TanRequestSegment) ID() string

func (*TanRequestSegment) Version

func (t *TanRequestSegment) Version() int

type Unmarshaler

type Unmarshaler interface {
	UnmarshalHBCI([]byte) error
}

type VersionedSegment

type VersionedSegment struct {
	ID      string
	Version int
}

func (VersionedSegment) String

func (v VersionedSegment) String() string

Jump to

Keyboard shortcuts

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