From 3be8b5c3c139ab75db4ae9ac927800505194d987 Mon Sep 17 00:00:00 2001
From: Thomas Lenz <thomas.lenz@egiz.gv.at>
Date: Wed, 29 May 2019 13:57:17 +0200
Subject: add new attribute builder fix some injection and dependency problems

---
 .../core/api/data/PVPAttributeDefinitions.java     | 24 ++++++++++++++++
 .../gv/egiz/eaaf/core/api/idp/IConfiguration.java  | 32 ++++++++++++++--------
 .../at/gv/egiz/eaaf/core/api/idp/IEidAuthData.java | 29 ++++++++++++++++++++
 3 files changed, 73 insertions(+), 12 deletions(-)
 create mode 100644 eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IEidAuthData.java

(limited to 'eaaf_core_api')

diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/data/PVPAttributeDefinitions.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/data/PVPAttributeDefinitions.java
index 2a92e5f3..e4ebe433 100644
--- a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/data/PVPAttributeDefinitions.java
+++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/data/PVPAttributeDefinitions.java
@@ -133,6 +133,30 @@ public interface PVPAttributeDefinitions {
 	public static final String EID_CITIZEN_EIDAS_QAA_LEVEL_OID = "1.2.40.0.10.2.1.1.261.108";	
 	public static final String EID_CITIZEN_EIDAS_QAA_LEVEL_NAME = URN_OID_PREFIX + EID_CITIZEN_EIDAS_QAA_LEVEL_OID;
 	public static final String EID_CITIZEN_EIDAS_QAA_LEVEL_FRIENDLY_NAME = "EID-CITIZEN-QAA-EIDAS-LEVEL";
+
+	public static final String EID_IDENTITY_STATUS_LEVEL_OID = "1.2.40.0.10.2.1.1.261.109";	
+	public static final String EID_IDENTITY_STATUS_LEVEL_NAME = URN_OID_PREFIX + EID_IDENTITY_STATUS_LEVEL_OID;
+	public static final String EID_IDENTITY_STATUS_LEVEL_FRIENDLY_NAME = "EID-IDENTITY-STATUS-LEVEL";
+	public enum EID_IDENTITY_STATUS_LEVEL_VALUES {
+		IDENTITY("http://eid.gv.at/eID/status/identity"), 
+		TESTIDENTITY("http://eid.gv.at/eID/status/testidentity"),
+		SYSTEM("http://eid.gv.at/eID/status/system");
+		
+		private final String uri;
+		
+		private EID_IDENTITY_STATUS_LEVEL_VALUES(String uri) {
+			this.uri = uri; 
+		}
+		
+		/**
+		 * Get the URI based status identifier of an E-ID
+		 * 
+		 * @return
+		 */
+		public String getURI() {
+			return this.uri;
+		}
+	};
 	
 	public static final String EID_ISSUING_NATION_OID = "1.2.40.0.10.2.1.1.261.32";
 	public static final String EID_ISSUING_NATION_NAME = URN_OID_PREFIX + EID_ISSUING_NATION_OID;
diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IConfiguration.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IConfiguration.java
index eceec2a6..7d564b58 100644
--- a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IConfiguration.java
+++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IConfiguration.java
@@ -57,26 +57,34 @@ public interface IConfiguration {
 	 */
 	public String getBasicConfiguration(final String key, final String defaultValue);
 	
+	
 	/**
-	 * Get a set of configuration values from file based configuration that starts with this prefix
-	 * <br><br>
-	 * <b>Important:</b> The configuration values must be of type String! 
+	 * Get a configuration value from file based configuration
 	 * 
-	 * @param prefix Prefix of the configuration key
-	 * @return Map<String, String> without prefix, but never null
+	 * @param key configuration key 
+	 * @return configuration value as {@link Boolean.parseBoolean(value)} or <code>null</code> if key does not exist
 	 */
-	public Map<String, String> getBasicMOAIDConfigurationWithPrefix(final String prefix);
-	
+	public Boolean getBasicConfigurationBoolean(final String key);
 	
 	/**
-	 * Get a boolean value from basic MOA-ID configuration file
+	 * Get a configuration value from file based configuration
 	 * 
-	 * @param key Configuration key
-	 * @param defaultValue Default result
-	 * @return returns the value of the configuration key, or the default value if the key is not set
+	 * @param key configuration key 
+	 * @param defaultValue Default value if no value with this key is found
+	 * @return configuration value as {@link Boolean.parseBoolean(value)} or <code>defaultValue</code> if key does not exist
 	 */
-	public boolean getBasicMOAIDConfigurationBoolean(String key, boolean defaultValue);
+	public boolean getBasicConfigurationBoolean(final String key, final boolean defaultValue);
 	
+	/**
+	 * Get a set of configuration values from file based configuration that starts with this prefix
+	 * <br><br>
+	 * <b>Important:</b> The configuration values must be of type String! 
+	 * 
+	 * @param prefix Prefix of the configuration key
+	 * @return Map<String, String> without prefix, but never null
+	 */
+	public Map<String, String> getBasicConfigurationWithPrefix(final String prefix);
+		
 	/**
 	 * Get a configuration entry for a specific Service Provider 
 	 * 
diff --git a/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IEidAuthData.java b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IEidAuthData.java
new file mode 100644
index 00000000..44ece8fe
--- /dev/null
+++ b/eaaf_core_api/src/main/java/at/gv/egiz/eaaf/core/api/idp/IEidAuthData.java
@@ -0,0 +1,29 @@
+package at.gv.egiz.eaaf.core.api.idp;
+
+import at.gv.egiz.eaaf.core.api.data.PVPAttributeDefinitions;
+
+public interface IEidAuthData extends IAuthData {
+
+	/**
+	 * Get the serialized signing certificate that was used to sign the consent
+	 * 
+	 * @return
+	 */
+	byte[] getSignerCertificate();
+
+	
+	/**
+	 * Get the serialized E-ID token that can be used to validate the Identity-Link
+	 * 
+	 * @return
+	 */
+	byte[] getEIDToken();
+
+
+	/**
+	 * Get the status of the E-ID  
+	 * 
+	 * @return {@link PVPAttributeDefinitions.EID_IDENTITY_STATUS_LEVEL_VALUES}
+	 */
+	PVPAttributeDefinitions.EID_IDENTITY_STATUS_LEVEL_VALUES getEIDStatus();
+}
-- 
cgit v1.2.3