summaryrefslogtreecommitdiff
path: root/H005.go
blob: 6f1b3e34269f0e2f337552b1973bc8685ddf9fc5 (plain)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package libebics

import "encoding/xml"

type H005UnsecuredRequest struct {
	XMLName  xml.Name                   `xml:"ebicsUnsecuredRequest"`
	Xmlns    string                     `xml:"xmlns,attr"`
	Version  string                     `xml:"Version,attr"`
	Revision string                     `xml:"Revision,attr"`
	Header   H005UnsecuredRequestHeader `xml:"header"`
	Body     H005UnsecuredRequestBody   `xml:"body"`
}

type H005UnsecuredRequestHeader struct {
	XMLName      xml.Name                             `xml:"header"`
	Authenticate bool                                 `xml:"authenticate,attr"`
	Static       H005UnsecuredRequestStaticHeaderType `xml:"static"`
	Mutable      H005EmptyMutableHeaderType           `xml:"mutable"`
}

type H005UnsecuredRequestStaticHeaderType struct {
	XMLName        xml.Name                         `xml:"static"`
	HostID         string                           `xml:"HostID"`
	PartnerID      string                           `xml:"PartnerID"`
	UserID         string                           `xml:"UserID"`
	Product        H005ProductElementType           `xml:"Product"`
	OrderDetails   H005UnsecuredReqOrderDetailsType `xml:"OrderDetails"`
	SecurityMedium string                           `xml:"SecurityMedium"`
}

type H005ProductElementType struct {
	XMLName  xml.Name `xml:"Product"`
	Language string   `xml:"Language,attr"`
	Name     string   `xml:",chardata"`
}

type H005UnsecuredReqOrderDetailsType struct {
	XMLName        xml.Name `xml:"OrderDetails"`
	AdminOrderType string   `xml:"AdminOrderType"`
}

type H005EmptyMutableHeaderType struct {
	XMLName xml.Name `xml:"mutable"`
}

type H005UnsecuredRequestBody struct {
	XMLName      xml.Name                         `xml:"body"`
	DataTransfer H005UnsecuredRequestDataTransfer `xml:"DataTransfer"`
}

type H005UnsecuredRequestDataTransfer struct {
	XMLName   xml.Name `xml:"DataTransfer"`
	OrderData string   `xml:"OrderData"` // TODO Properly marshal this
}

type H005HIARequestOrderDataType struct {
	XMLName                  xml.Name                     `xml:"HIARequestOrderData"`
	Xmlns                    string                       `xml:"xmlns,attr"`
	Esig                     string                       `xml:"xmlns:esig,attr"`
	Ds                       string                       `xml:"xmlns:ds,attr"`
	AuthenticationPubKeyInfo H005AuthenticationPubKeyInfo `xml:"AuthenticationPubKeyInfo"`
	EncryptionPubKeyInfo     H005EncryptionPubKeyInfo     `xml:"EncryptionPubKeyInfo"`
	PartnerID                string                       `xml:"PartnerID"`
	UserID                   string                       `xml:"UserID"`
}

type H005AuthenticationPubKeyInfo struct {
	XMLName               xml.Name     `xml:"AuthenticationPubKeyInfo"`
	X509Data              DSIGX509Data `xml:"ds:X509Data"`
	AuthenticationVersion string       `xml:"AuthenticationVersion"` // TODO Use ENUM
}

type H005EncryptionPubKeyInfo struct {
	XMLName           xml.Name     `xml:"EncryptionPubKeyInfo"`
	X509Data          DSIGX509Data `xml:"ds:X509Data"`
	EncryptionVersion string       `xml:"EncryptionVersion"` // TODO Use ENUM
}