예제 #1
0
        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);
        }
예제 #2
0
파일: Tests.cs 프로젝트: 63l06ri5/CAdESLib
            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));
            }
예제 #3
0
파일: Tests.cs 프로젝트: 63l06ri5/CAdESLib
        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,
                        }
                    });
                }
            }
        }