Procházet zdrojové kódy

Addresses #3 "SignedInfo tag namespace issue":
A new check for the type SignedInfoType to get the correct namespace deals with this issue
Tested with updated keystores and certificates

Marc Mültin před 10 roky
rodič
revize
72d0327a72

binární
RISE-V2G-EVCC/evccKeystore.jks


binární
RISE-V2G-EVCC/evccTruststore.jks


binární
RISE-V2G-SECC/contractCert.p12


binární
RISE-V2G-SECC/provServiceCert.p12


binární
RISE-V2G-SECC/seccKeystore.jks


binární
RISE-V2G-SECC/seccTruststore.jks


+ 9 - 2
RISE-V2G-Shared/src/main/java/org/eclipse/risev2g/shared/utils/MiscUtils.java

@@ -20,14 +20,17 @@ import java.net.SocketException;
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.Properties;
+
 import javax.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
 import org.eclipse.risev2g.shared.enumerations.GlobalValues;
 import org.eclipse.risev2g.shared.enumerations.V2GMessages;
 import org.eclipse.risev2g.shared.v2gMessages.msgDef.EnergyTransferModeType;
 import org.eclipse.risev2g.shared.v2gMessages.msgDef.PaymentOptionType;
+import org.eclipse.risev2g.shared.v2gMessages.msgDef.SignedInfoType;
 import org.eclipse.risev2g.shared.v2gMessages.msgDef.SupportedEnergyTransferModeType;
 
 
@@ -256,14 +259,18 @@ public final class MiscUtils {
 	 * JAXBElement<SessionStopReqType>(new QName ... ) but this seems to work as well 
 	 * (I don't know how to infer the type correctly)
 	 * 
-	 * @param messageOrField
+	 * @param messageOrField The message or field for which a digest is to be generated
 	 * @return
 	 */
 	@SuppressWarnings({ "rawtypes", "unchecked" })
 	public static JAXBElement getJaxbElement(Object messageOrField) {
 		String messageName = messageOrField.getClass().getSimpleName().replace("Type", "");
+		String namespace = "";
+		
+		if (messageOrField instanceof SignedInfoType) namespace = "http://www.w3.org/2000/09/xmldsig#";
+		else namespace = "urn:iso:15118:2:2013:MsgBody";
 		
-		return new JAXBElement(new QName("urn:iso:15118:2:2013:MsgBody", messageName), 
+		return new JAXBElement(new QName(namespace, messageName), 
 				messageOrField.getClass(), 
 				messageOrField);
 	}

+ 1 - 1
RISE-V2G-Shared/src/main/java/org/eclipse/risev2g/shared/utils/SecurityUtils.java

@@ -263,7 +263,7 @@ public final class SecurityUtils {
 		} catch (InvalidKeyException | CertificateException | NoSuchAlgorithmException | 
 				 NoSuchProviderException | SignatureException e) {
 			getLogger().warn("Signature verification of certificate having distinguished name '" + 
-							  subject.getName() + "' with certificate having distinguished name '" + 
+							  subject.getName() + "' with certificate having distinguished name (the issuer) '" + 
 							  issuerSubject.getName() + "' failed. Expected issuer has distinguished name '" +
 							  expectedIssuerSubject.getName() + "' (" + e.getClass().getSimpleName() + ")", e);
 		}