forked from mitch000001/go-hbci
/
sync.go
54 lines (48 loc) · 1.58 KB
/
sync.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package message
import (
"github.com/mitch000001/go-hbci/segment"
)
// NewSynchronisationMessage creates a new Message for Synchronizing client and server
func NewSynchronisationMessage(hbciVersion segment.HBCIVersion) *SynchronisationMessage {
s := &SynchronisationMessage{
hbciVersion: hbciVersion,
}
s.BasicMessage = NewBasicMessage(s)
return s
}
// SynchronisationMessage serves the purpose of syncing the client and the server
type SynchronisationMessage struct {
*BasicMessage
Identification *segment.IdentificationSegment
ProcessingPreparation *segment.ProcessingPreparationSegment
PublicSigningKeyRequest *segment.PublicKeyRequestSegment
PublicEncryptionKeyRequest *segment.PublicKeyRequestSegment
PublicKeyRequest *segment.PublicKeyRequestSegment
Sync *segment.SynchronisationRequestSegment
hbciVersion segment.HBCIVersion
}
// HBCIVersion returns the HBCI version of the message
func (s *SynchronisationMessage) HBCIVersion() segment.HBCIVersion {
return s.hbciVersion
}
// HBCISegments returns all segments of the message
func (s *SynchronisationMessage) HBCISegments() []segment.ClientSegment {
return []segment.ClientSegment{
s.Identification,
s.ProcessingPreparation,
s.PublicSigningKeyRequest,
s.PublicEncryptionKeyRequest,
s.PublicKeyRequest,
s.Sync,
}
}
func (s *SynchronisationMessage) jobs() []segment.ClientSegment {
return []segment.ClientSegment{
s.Identification,
s.ProcessingPreparation,
s.PublicSigningKeyRequest,
s.PublicEncryptionKeyRequest,
s.PublicKeyRequest,
s.Sync,
}
}