public override ISessionCryptoResult VerifyChargingSession(IChargingSession ChargingSession)
        {
            var sessionResult = SessionVerificationResult.UnknownSessionFormat;

            if (ChargingSession.Measurements != null)
            {
                foreach (var measurement in ChargingSession.Measurements)
                {
                    measurement.ChargingSession = ChargingSession;

                    // Must include at least two measurements (start & stop)
                    if (measurement.Values != null && measurement.Values.Count() > 1)
                    {
                        // Validate...
                        foreach (var measurementValue in measurement.Values)
                        {
                            measurementValue.Measurement = measurement;
                            VerifyMeasurement(measurementValue as IEMHMeasurementValue);
                        }


                        // Find an overall result...
                        sessionResult = SessionVerificationResult.ValidSignature;

                        foreach (var measurementValue in measurement.Values)
                        {
                            if (sessionResult == SessionVerificationResult.ValidSignature &&
                                measurementValue.Result.Status != VerificationResult.ValidSignature)
                            {
                                sessionResult = SessionVerificationResult.InvalidSignature;
                            }
                        }
                    }

                    else
                    {
                        sessionResult = SessionVerificationResult.AtLeastTwoMeasurementsExpected;
                    }
                }
            }

            return(new EMHSessionCryptoResult(sessionResult));
        }
示例#2
0
 public abstract ISessionCryptoResult VerifyChargingSession(IChargingSession ChargingSession);
 public override ISignResult SignChargingSession(IChargingSession ChargingSession,
                                                 Byte[]            PrivateKey,
                                                 SignatureFormats SignatureFormat = SignatureFormats.DER)
 {
     return(null);
 }
示例#4
0
 public abstract ISignResult SignChargingSession(IChargingSession ChargingSession,
                                                 Byte[]              PrivateKey,
                                                 SignatureFormats SignatureFormat = SignatureFormats.DER);