summaryrefslogtreecommitdiff
path: root/H005.go
diff options
context:
space:
mode:
authorMerlin Scholz <merlin@scholz.ruhr>2026-05-13 20:15:33 +0200
committerMerlin Scholz <merlin@scholz.ruhr>2026-05-13 20:15:33 +0200
commit60597296eb8b9df9ae8e6e77e0f44929c5ef2970 (patch)
treedc5bba83c3fd2269b6fcf1874329d1d5e980e4c5 /H005.go
parent57c9ff7ab110dc22c84993d54b52554bd79b86f1 (diff)
Move type definitions to proper files and rename according to ebics schema
Diffstat (limited to 'H005.go')
-rw-r--r--H005.go77
1 files changed, 77 insertions, 0 deletions
diff --git a/H005.go b/H005.go
new file mode 100644
index 0000000..6f1b3e3
--- /dev/null
+++ b/H005.go
@@ -0,0 +1,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
+}