From bb5a004fc8267f0f0a18703fd8a718bbaa6ce937 Mon Sep 17 00:00:00 2001 From: Konstantinos Pakas <30725358+ZakMcKrack3n@users.noreply.github.com> Date: Wed, 27 May 2026 14:16:36 +0200 Subject: [PATCH] Enable actual OCMF 1.4 parsing The MAX_VERSION gated versions up to 1.4, but the actual parsing was hardcoded to 1.3 Changed version comparison and cutoff logic to use MAX_VERSION Removed surplus exception as max version was already checked (unreachable code). --- .../format/ocmf/OCMFVerificationParser.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/safe_ev/transparenzsoftware/verification/format/ocmf/OCMFVerificationParser.java b/src/main/java/de/safe_ev/transparenzsoftware/verification/format/ocmf/OCMFVerificationParser.java index b1facf9..64fcc86 100644 --- a/src/main/java/de/safe_ev/transparenzsoftware/verification/format/ocmf/OCMFVerificationParser.java +++ b/src/main/java/de/safe_ev/transparenzsoftware/verification/format/ocmf/OCMFVerificationParser.java @@ -23,7 +23,7 @@ public class OCMFVerificationParser implements VerificationParser { public static final String HEADER_VALUE = "OCMF"; public static final double MIN_VERSION = 0.1; - public static final double MAX_VERSION = 1.4 + 0.1; // must be one more + public static final double MAX_VERSION = 1.4; @Override public VerificationType getVerificationType() { @@ -125,7 +125,7 @@ public OCMF parseString(String data) throws OCMFValidationException { "error.ocmf.invalid.version"); } - if (MIN_VERSION > version || MAX_VERSION < version) { + if (MIN_VERSION > version || version > MAX_VERSION) { throw new OCMFValidationException( String.format("Not compatible with OCMF version %s", simpleData.get("FV").toString()), "error.ocmf.invalid.version"); @@ -134,12 +134,10 @@ public OCMF parseString(String data) throws OCMFValidationException { if (version < 0.5) { ocmfPayloadData = gson.fromJson(rawData, de.safe_ev.transparenzsoftware.verification.format.ocmf.v02.OCMFPayloadData.class); - } else if (version <= 1.3) { + } + else { ocmfPayloadData = gson.fromJson(rawData, de.safe_ev.transparenzsoftware.verification.format.ocmf.v05.OCMFPayloadData.class); - } else { - throw new OCMFValidationException(String.format("Not compatible with OCMF version %s", version), - "error.ocmf.invalid.version"); } final OCMFSignature signature = gson.fromJson(splittedData[2], OCMFSignature.class); @@ -159,4 +157,4 @@ public Class getVerfiedDataClass() { return OCMFVerifiedData.class; } -} +} \ No newline at end of file