From a459d128ab18db2ec47ad3feaff17ffcd2431217 Mon Sep 17 00:00:00 2001 From: Merlin Scholz Date: Wed, 13 May 2026 20:15:33 +0200 Subject: Use proper marshalling for enums --- H005.go | 12 ++++++------ S002.go | 6 +++--- order.go | 7 ++++--- xml.go | 7 +++++++ 4 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 xml.go diff --git a/H005.go b/H005.go index 6f1b3e3..83f48d7 100644 --- a/H005.go +++ b/H005.go @@ -65,13 +65,13 @@ type H005HIARequestOrderDataType struct { } type H005AuthenticationPubKeyInfo struct { - XMLName xml.Name `xml:"AuthenticationPubKeyInfo"` - X509Data DSIGX509Data `xml:"ds:X509Data"` - AuthenticationVersion string `xml:"AuthenticationVersion"` // TODO Use ENUM + XMLName xml.Name `xml:"AuthenticationPubKeyInfo"` + X509Data DSIGX509Data `xml:"ds:X509Data"` + AuthenticationVersion EbicsCertificateType `xml:"AuthenticationVersion"` } type H005EncryptionPubKeyInfo struct { - XMLName xml.Name `xml:"EncryptionPubKeyInfo"` - X509Data DSIGX509Data `xml:"ds:X509Data"` - EncryptionVersion string `xml:"EncryptionVersion"` // TODO Use ENUM + XMLName xml.Name `xml:"EncryptionPubKeyInfo"` + X509Data DSIGX509Data `xml:"ds:X509Data"` + EncryptionVersion EbicsCertificateType `xml:"EncryptionVersion"` } diff --git a/S002.go b/S002.go index a2e4d4b..f9645a5 100644 --- a/S002.go +++ b/S002.go @@ -3,9 +3,9 @@ package libebics import "encoding/xml" type S002SignaturePubKeyInfoType struct { - XMLName xml.Name `xml:"esig:SignaturePubKeyInfo"` - X509Data DSIGX509Data `xml:"ds:X509Data"` - SignatureVersion string `xml:"esig:SignatureVersion"` // TODO Use ENUM + XMLName xml.Name `xml:"esig:SignaturePubKeyInfo"` + X509Data DSIGX509Data `xml:"ds:X509Data"` + SignatureVersion EbicsCertificateType `xml:"esig:SignatureVersion"` } type S002SignaturePubKeyOrderDataType struct { diff --git a/order.go b/order.go index f200461..273f7ff 100644 --- a/order.go +++ b/order.go @@ -27,7 +27,7 @@ func GenerateIniRequest(signatureCertificate EbicsCertificate) (string, error) { signatureCertificate.x509Certificate, // TODO Proper Base64 Marshalling ), }, - SignatureVersion: signatureCertificate.ebicsCertificateType.String(), + SignatureVersion: signatureCertificate.ebicsCertificateType, }, PartnerID: "MV008078", UserID: "SCHOLZ01", @@ -38,6 +38,7 @@ func GenerateIniRequest(signatureCertificate EbicsCertificate) (string, error) { return "", err } + fmt.Print(string(orderData_xml)) zlibWriter.Write(orderData_xml) zlibWriter.Close() @@ -98,7 +99,7 @@ func GenerateHiaRequest(authenticationCertificate EbicsCertificate, encryptionCe authenticationCertificate.x509Certificate, // TODO Proper Base64 Marshalling ), }, - AuthenticationVersion: authenticationCertificate.ebicsCertificateType.String(), + AuthenticationVersion: authenticationCertificate.ebicsCertificateType, }, EncryptionPubKeyInfo: H005EncryptionPubKeyInfo{ X509Data: DSIGX509Data{ @@ -106,7 +107,7 @@ func GenerateHiaRequest(authenticationCertificate EbicsCertificate, encryptionCe encryptionCertificate.x509Certificate, // TODO Proper Base64 Marshalling ), }, - EncryptionVersion: encryptionCertificate.ebicsCertificateType.String(), + EncryptionVersion: encryptionCertificate.ebicsCertificateType, }, PartnerID: "MV008078", UserID: "SCHOLZ01", diff --git a/xml.go b/xml.go new file mode 100644 index 0000000..d528dde --- /dev/null +++ b/xml.go @@ -0,0 +1,7 @@ +package libebics + +import "encoding/xml" + +func (t EbicsCertificateType) MarshalXML(e *xml.Encoder, start xml.StartElement) error { + return e.EncodeElement(t.String(), start) +} -- cgit