From 8eb65febb84af1472513fdecbf9553817d2ab93b Mon Sep 17 00:00:00 2001
From: Thomas Lenz <thomas.lenz@egiz.gv.at>
Date: Thu, 6 Nov 2014 07:30:37 +0100
Subject: fix Nullpointer if UR result includes a FunktionsRegel without a date

---
 src/main/java/at/gv/util/client/ur_V5/URClient.java | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

(limited to 'src/main')

diff --git a/src/main/java/at/gv/util/client/ur_V5/URClient.java b/src/main/java/at/gv/util/client/ur_V5/URClient.java
index 537ed25..59bf501 100644
--- a/src/main/java/at/gv/util/client/ur_V5/URClient.java
+++ b/src/main/java/at/gv/util/client/ur_V5/URClient.java
@@ -233,7 +233,20 @@ public class URClient {
 								if (this.allowedERsBKeys.contains(String.valueOf(funct.getFktName()))) {							
 									List<FktRegelTypVollzug> functRegel = funct.getFktRegel();
 									for (FktRegelTypVollzug el : functRegel) {
-										if ( (el.getFktRegelVon().compare(xmldate) == DatatypeConstants.LESSER 
+										if ( el.getFktRegelVon() == null && el.getFktRegelBis() == null)
+											set.add(String.valueOf(funct.getFktName()));
+																						
+										else if ( el.getFktRegelVon() != null && el.getFktRegelBis() == null 
+												&& el.getFktRegelVon().compare(xmldate) == DatatypeConstants.LESSER ) 
+											set.add(String.valueOf(funct.getFktName()));
+										 
+										else if ( el.getFktRegelVon() == null && el.getFktRegelBis() != null  
+												&& el.getFktRegelBis().compare(xmldate) == DatatypeConstants.GREATER )
+											set.add(String.valueOf(funct.getFktName()));
+										
+										
+										else if ( el.getFktRegelVon() != null && el.getFktRegelBis() != null 
+												&& (el.getFktRegelVon().compare(xmldate) == DatatypeConstants.LESSER 
 												&& el.getFktRegelBis().compare(xmldate) == DatatypeConstants.GREATER) )
 											set.add(String.valueOf(funct.getFktName()));
 										
-- 
cgit v1.2.3


From 0b80629de22e6c45225a6516829b293062875c0e Mon Sep 17 00:00:00 2001
From: Thomas Lenz <thomas.lenz@egiz.gv.at>
Date: Thu, 6 Nov 2014 11:11:18 +0100
Subject: updte bPK builder

---
 src/main/java/at/gv/util/BpkUtil.java | 34 +++++++++++++++++++++++++++-------
 1 file changed, 27 insertions(+), 7 deletions(-)

(limited to 'src/main')

diff --git a/src/main/java/at/gv/util/BpkUtil.java b/src/main/java/at/gv/util/BpkUtil.java
index 5c256c4..31dfa6d 100644
--- a/src/main/java/at/gv/util/BpkUtil.java
+++ b/src/main/java/at/gv/util/BpkUtil.java
@@ -53,7 +53,10 @@ public final class BpkUtil {
 	public static final String SECTOR_DELIVERY = "ZU";
 	public static final String PUBLIC_KEY_ZUSEKOPF_SN01_BASE64 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfGFFEzWl1kSbzmk4pWVeftyD2aWTVQ8xSIwb6ECLdFTy4zE9LI6a87zlPbOOzvvdO+Nv1VCvT+WqD9HOCtPwealwwRKS2cHI9aqYyozqDOIGBRIz7MDBKuqaTwCvonFe0MUBxVWDDTmqhDIjkN0uDQidQtqqjzupEzuQ59lVpBQIDAQAB";
 
-	public static final String prefix = "urn:publicid:gv.at:cdid+";
+	public static final String PREFIX_BPK_TYPE = "urn:publicid:gv.at:cdid+";
+	public static final String PREFIX_WBPK_TYPE = "urn:publicid:gv.at:wbpk+";
+	public static final String PREFIX_STORK_TYPE = "urn:publicid:gv.at:storkid+";
+	 
 	
 	
 	private static String calcDigest(String data)
@@ -64,19 +67,36 @@ public final class BpkUtil {
 	}
 
 	
+	public static String calcbPKorwbPKorSTORKID(String baseID, String sector) {
+		MiscUtil.assertNotEmpty(baseID, "BaseID");
+		MiscUtil.assertNotEmpty(sector, "Sector");
+		
+		if (sector.startsWith(PREFIX_BPK_TYPE))
+			return calcBPK(baseID, sector);
+		
+		else if (sector.startsWith(PREFIX_WBPK_TYPE))
+			return calcWBPK(baseID, sector);
+		
+		else if (sector.startsWith(PREFIX_STORK_TYPE))
+			return calcWBPK(baseID, sector);
+		
+		else
+			throw new InternalErrorException("Sector is not of bPK or wbPK or stork type");
+		
+	}
+	
 	
 	public static String calcBPK(String baseID, String sector) {
 		MiscUtil.assertNotEmpty(baseID, "BaseID");
 		MiscUtil.assertNotEmpty(sector, "Sector");
 		// prefix according to specification
-		String prefix = "urn:publicid:gv.at:cdid+";
-
+	
 		// concatenation according to algorithm
 		String data;
-		if (sector.startsWith(prefix))
+		if (sector.startsWith(PREFIX_BPK_TYPE))
 			data = baseID + "+" + sector;
 		else
-			data = baseID + "+" + prefix + sector;
+			data = baseID + "+" + PREFIX_BPK_TYPE + sector;
 
 		String hash = null;
 		try {
@@ -91,8 +111,8 @@ public final class BpkUtil {
 
 	public static BPK createBPK(String baseID, String sector) {
 		
-		if (sector.startsWith(prefix))
-			sector = sector.substring(prefix.length());
+		if (sector.startsWith(PREFIX_BPK_TYPE))
+			sector = sector.substring(PREFIX_BPK_TYPE.length());
 		
 		return new BPK(sector, calcBPK(baseID, sector));
 	}
-- 
cgit v1.2.3