From c5c2c73f3fe46e23871f609b82791540c1a16a24 Mon Sep 17 00:00:00 2001 From: CGantert345 <57003061+CGantert345@users.noreply.github.com> Date: Tue, 30 May 2023 12:19:12 +0200 Subject: fix on the security provider --- src/main/java/org/uic/barcode/Encoder.java | 15 +++++++++++++-- .../java/org/uic/barcode/staticFrame/StaticFrame.java | 1 - .../uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/main/java/org/uic') diff --git a/src/main/java/org/uic/barcode/Encoder.java b/src/main/java/org/uic/barcode/Encoder.java index f2b9b0c..f8dae02 100644 --- a/src/main/java/org/uic/barcode/Encoder.java +++ b/src/main/java/org/uic/barcode/Encoder.java @@ -370,16 +370,27 @@ public class Encoder { */ public void signLevel1(String securityProvider,PrivateKey key,String signingAlg, String keyId) throws Exception { if (dynamicFrame != null) { - dynamicFrame.getLevel2Data().getLevel1Data().setSecurityProvider(securityProvider); + if (securityProvider != null && securityProvider.length() > 0) { + dynamicFrame.getLevel2Data().getLevel1Data().setSecurityProvider(securityProvider); + } dynamicFrame.getLevel2Data().getLevel1Data().setLevel1SigningAlg(signingAlg); dynamicFrame.getLevel2Data().getLevel1Data().setKeyId(Long.parseLong(keyId)); dynamicFrame.signLevel1(key); } else if (staticFrame != null) { staticFrame.setSignatureKey(keyId); staticFrame.setSecurityProvider(securityProvider); - if (staticFrame.getHeaderRecord()!= null && staticFrame.getHeaderRecord().getIssuer() == null) { + if (securityProvider != null && + securityProvider.length() > 0 && + staticFrame.getHeaderRecord()!= null) { staticFrame.getHeaderRecord().setIssuer(securityProvider); } + if (securityProvider != null && + securityProvider.length() > 0 && + staticFrame.getuFlex() != null && + staticFrame.getuFlex().getTicket() != null && + staticFrame.getuFlex().getTicket().getIssuerDetails() != null) { + staticFrame.getuFlex().getTicket().getIssuerDetails().setSecurityProvider(securityProvider); + } staticFrame.signByAlgorithmOID(key,signingAlg); } else if (ssbFrame != null) { ssbFrame.signLevel1(key, null, keyId, signingAlg); diff --git a/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java b/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java index 25649df..6b577c5 100644 --- a/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java +++ b/src/main/java/org/uic/barcode/staticFrame/StaticFrame.java @@ -19,7 +19,6 @@ import java.util.zip.DataFormatException; import java.util.zip.Deflater; import java.util.zip.Inflater; -import org.uic.barcode.dynamicFrame.Constants; import org.uic.barcode.ticket.EncodingFormatException; import org.uic.barcode.utils.SecurityUtils; diff --git a/src/main/java/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java b/src/main/java/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java index d8934d9..ada4c1a 100644 --- a/src/main/java/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java +++ b/src/main/java/org/uic/barcode/ticket/api/utils/Api2OpenAsnEncoder.java @@ -2127,7 +2127,7 @@ public class Api2OpenAsnEncoder implements Api2AsnEncoder { if (data.getSecurityProvider() != null) { asnData.setSecurityProviderNum(UicEncoderUtils.getNum(data.getSecurityProvider())); - data.setSecurityProvider(data.getIssuer()); + asnData.setSecurityProviderIA5(UicEncoderUtils.getIA5NonNum(data.getSecurityProvider())); } else { asnData.setSecurityProviderNum(UicEncoderUtils.getNum(data.getIssuer())); } -- cgit v1.2.3