private CAdESSignatureExtension GetExtensionProfile(SignatureParameters parameters) { SignatureProfile signFormat = parameters.SignatureProfile; if (signFormat == SignatureProfile.BES || signFormat == SignatureProfile.EPES) { return(null); } else if (signFormat == SignatureProfile.T) { CAdESProfileT extensionT = new CAdESProfileT { SignatureTsa = tspSource }; return(extensionT); } else if (signFormat == SignatureProfile.C) { CAdESProfileC extensionC = new CAdESProfileC { SignatureTsa = tspSource, CertificateVerifier = verifier }; return(extensionC); } else if (signFormat == SignatureProfile.XType1 || signFormat == SignatureProfile.XType2) { CAdESProfileX extensionX = new CAdESProfileX { SignatureTsa = tspSource }; extensionX.SetExtendedValidationType(signFormat == SignatureProfile.XType1 ? 1 : 2); extensionX.CertificateVerifier = verifier; return(extensionX); } else if (signFormat == SignatureProfile.XL || signFormat == SignatureProfile.XLType1 || signFormat == SignatureProfile.XLType2) { CAdESProfileXL extensionXL = new CAdESProfileXL { SignatureTsa = tspSource }; extensionXL.SetExtendedValidationType(signFormat == SignatureProfile.XL ? 1 : signFormat == SignatureProfile.XLType1 ? 1 : 2); extensionXL.CertificateVerifier = verifier; return(extensionXL); } else if (signFormat == SignatureProfile.A) { CAdESProfileA extensionA = new CAdESProfileA { SignatureTsa = tspSource, CertificateVerifier = verifier }; extensionA.SetExtendedValidationType(1); return(extensionA); } throw new ArgumentException("Unsupported signature format " + parameters.SignatureProfile); }
public override string ToString() { var builder = new List <string>(); builder.Add($"Profile{Enum.GetName(SignatureProfile.GetType(), SignatureProfile)}"); if (SignatureValid.HasValue) { builder.Add("Sign" + (SignatureValid.Value ? "Valid" : "NotValid")); } ; if (SignatureCertTimeValid.HasValue) { builder.Add("CertTime" + (SignatureCertTimeValid.Value ? "Valid" : "NotValid")); } ; if (SignatureCertTrusted.HasValue) { builder.Add("SignatureCertTrusted" + (SignatureCertTrusted.Value ? "Valid" : "NotValid")); } if (SignatureCertOCSP.HasValue) { builder.Add("SignatureCertOCSP" + (SignatureCertOCSP.Value ? "Valid" : "NotValid")); } if (SignatureCertCRL.HasValue) { builder.Add("SignatureCertCRL" + (SignatureCertCRL.Value ? "Valid" : "NotValid")); } if (OCSPCertTrusted.HasValue) { builder.Add("OCSPCertTrusted" + (OCSPCertTrusted.Value ? "Valid" : "NotValid")); } if (TSSignatureCertTrusted.HasValue) { builder.Add("TSSignatureCertTrusted" + (TSSignatureCertTrusted.Value ? "Valid" : "NotValid")); } return(string.Join(",", builder)); }
static IEnumerable <object> BESTestCaseSource() { using (var file = File.OpenText("TestCases.csv")) { // header var line = file.ReadLine(); line = file.ReadLine(); while ((line = file.ReadLine()) != null) { if (line == null) { yield break; } var values = line.Split('\t'); // params if (values[0] == "no") { continue; } var startIndex = 1; SignatureProfile SignatureProfile = Enum.Parse <SignatureProfile>(values[startIndex + 0]); bool? SignatureValid = GetBoolValue(values[startIndex + 1]); bool? SignatureCertTimeValid = GetBoolValue(values[startIndex + 2]); bool? SignatureCertTrusted = GetBoolValue(values[startIndex + 3]); bool? SignatureCertOCSP = GetBoolValue(values[startIndex + 4]); bool? SignatureCertCRL = GetBoolValue(values[startIndex + 5]); bool? OCSPCertTrusted = GetBoolValue(values[startIndex + 6]); //bool? CRLCertTrusted = GetBoolValue(values[startIndex + 7]); bool?TSSignatureCertTrusted = GetBoolValue(values[startIndex + 8]); // results bool SignatureVerification = GetBoolValue(values[startIndex + 9]).Value; bool CertPathVerification = GetBoolValue(values[startIndex + 10]).Value; bool?BESLevel = GetBoolValue(values[startIndex + 11]); bool?TLevel = GetBoolValue(values[startIndex + 12]); bool?TSignatureVerifications = GetBoolValue(values[startIndex + 13]); bool?TCertPathVerifications = GetBoolValue(values[startIndex + 14]); bool?CLevel = GetBoolValue(values[startIndex + 15]); bool?CCertRefs = GetBoolValue(values[startIndex + 16]); bool?CRevocationRefs = GetBoolValue(values[startIndex + 17]); bool?XType1Level = GetBoolValue(values[startIndex + 18]); bool?XType1SignatureVerifications = GetBoolValue(values[startIndex + 19]); bool?XType1CertPathVerifications = GetBoolValue(values[startIndex + 20]); bool?XType2Level = GetBoolValue(values[startIndex + 21]); bool?XType2SignatureVerifications = GetBoolValue(values[startIndex + 22]); bool?XType2CertPathVerifications = GetBoolValue(values[startIndex + 23]); bool?XLLevel = GetBoolValue(values[startIndex + 24]); bool?CCertValues = GetBoolValue(values[startIndex + 25]); bool?CRevocationValues = GetBoolValue(values[startIndex + 26]); bool?XLType1Level = GetBoolValue(values[startIndex + 27]); bool?XLType2Level = GetBoolValue(values[startIndex + 28]); bool?ALevel = GetBoolValue(values[startIndex + 29]); bool?ASignatureVerifications = GetBoolValue(values[startIndex + 30]); bool?ACertPathVerifications = GetBoolValue(values[startIndex + 31]); yield return(new object[] { new SignatureParams { SignatureProfile = SignatureProfile, SignatureValid = SignatureValid, SignatureCertTimeValid = SignatureCertTimeValid, SignatureCertTrusted = SignatureCertTrusted, SignatureCertOCSP = SignatureCertOCSP, SignatureCertCRL = SignatureCertCRL, OCSPCertTrusted = OCSPCertTrusted, //CRLCertTrusted = CRLCertTrusted, TSSignatureCertTrusted = TSSignatureCertTrusted }, new SignatureVerificationResults { SignatureVerification = SignatureVerification, CertPathVerification = CertPathVerification, BESLevel = BESLevel, TLevel = TLevel, TSignatureVerifications = TSignatureVerifications, TCertPathVerifications = TCertPathVerifications, CLevel = CLevel, CCertRefs = CCertRefs, CRevocationRefs = CRevocationRefs, XType1Level = XType1Level, XType1SignatureVerifications = XType1SignatureVerifications, XType1CertPathVerifications = XType1CertPathVerifications, XType2Level = XType2Level, XType2SignatureVerifications = XType2SignatureVerifications, XType2CertPathVerifications = XType2CertPathVerifications, XLLevel = XLLevel, CCertValues = CCertValues, CRevocationValues = CRevocationValues, XLType1Level = XLType1Level, XLType2Level = XLType2Level, ALevel = ALevel, ASignatureVerifications = ASignatureVerifications, ACertPathVerifications = ACertPathVerifications, } }); } } }