public void TestBuildTBSField_SerialNumber_AssertBuilt() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic tbsField = parser.BuildTBSField("X509.TBS.SerialNumber"); Assert.NotNull(tbsField); Assert.Equal(tbsField.GetType(), typeof(SerialNumberAttributeField)); Assert.True(tbsField.IsRequired()); }
public void TestBuildX509Field_SignatureAlgorithm_AssertBuilt() { var parser = new SimpleTextV1LexiconPolicyParser(); IPolicyExpression field = parser.BuildX509Field("X509.Algorithm"); Assert.NotNull(field); field.GetType().Should().Be(typeof(SignatureAlgorithmField)); }
private Task<IPolicyExpression> ParseLexicon(string lexicon) { return Task.Run(() => { var parser = new SimpleTextV1LexiconPolicyParser(); return parser.Parse(lexicon.ToStream()); }); }
public void testParse_extraniousOperator_assertGrammarException() { using (Stream stream = "1 = 1 =".ToStream()) { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyGrammarException>(() => parser.Parse(stream)); } }
public void TestParse_NoOperator_AssertGrammarException() { using (Stream stream = "(1".ToStream()) { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyGrammarException>(() => parser.Parse(stream)); } }
public void TestParse_SimpleExpression_ValidateTokens() { var parser = new SimpleTextV1LexiconPolicyParser(); using (Stream stream = File.OpenRead("./resources/policies/simpleLexiconSamp1.txt")) { IList<SimpleTextV1LexiconPolicyParser.TokenTypeAssociation> tokens = parser.ParseToTokens(stream); tokens.Count.Should().Be(11); } }
public void TestParse_SimpleExpression_PolicyRef_ValidateTokens() { var parser = new SimpleTextV1LexiconPolicyParser(); using (Stream stream = "X509.Algorithm = 1.2.840.113549.1.1.5".ToStream()) { IList<SimpleTextV1LexiconPolicyParser.TokenTypeAssociation> tokens = parser.ParseToTokens(stream); tokens.Count.Should().Be(3); } }
public void TestParse_LogicalAndOperator_ValidateSingleTokens() { var parser = new SimpleTextV1LexiconPolicyParser(); using (Stream stream = File.OpenRead("./resources/policies/logicalAndOperator.txt")) { IList<SimpleTextV1LexiconPolicyParser.TokenTypeAssociation> tokens = parser.ParseToTokens(stream); tokens.Count.Should().Be(1); tokens.First().GetToken().Should().Be("&&"); } }
public void TestParse_LiteralWithSpaces_ValidateTokens() { var parser = new SimpleTextV1LexiconPolicyParser(); using (Stream stream = File.OpenRead("./resources/policies/literalWithSpaces.txt")) { IList<SimpleTextV1LexiconPolicyParser.TokenTypeAssociation> tokens = parser.ParseToTokens(stream); tokens.Count.Should().Be(3); tokens.First().GetTokenType().Should().Be(TokenType.CERTIFICATE_REFERENCE_EXPRESSION); } }
public void TestBuildExtensionField_SubjectAltName_AssertBuilt() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectAltName"); Assert.NotNull(field); Assert.Equal(typeof(SubjectAltNameExtensionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectAltName+"); Assert.NotNull(field); Assert.Equal(typeof(SubjectAltNameExtensionField), field.GetType()); Assert.True(field.IsRequired()); }
public Boolean IsValidLexicon(CertPolicy policy) { try { //might get parser from policy.Lexicon in the future var parser = new SimpleTextV1LexiconPolicyParser(); parser.Parse(policy.Data.ToMemoryStream()); return true; } catch (Exception) { return false; } }
public IPolicyExpression GetPolicyExpression(byte[] policy) { try { //might get parser from policy.Lexicon in the future var parser = new SimpleTextV1LexiconPolicyParser(); IPolicyExpression expression = parser.Parse(policy.ToMemoryStream()); return expression; } catch (Exception) { return null; } }
public void TestBuildExtensionField_AutorityKeyId_AssertFields() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityKeyIdentifier.KeyId"); Assert.NotNull(field); Assert.Equal(typeof(AuthorityKeyIdentifierKeyIdExtensionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityKeyIdentifier.KeyId+"); Assert.NotNull(field); Assert.Equal(typeof(AuthorityKeyIdentifierKeyIdExtensionField), field.GetType()); Assert.True(field.IsRequired()); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityKeyIdentifier.CertIssuers")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityKeyIdentifier.CertIssuers+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityKeyIdentifier.SerialNumber")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityKeyIdentifier.SerialNumber+")); }
public void testParse_tbs_serialnumber_validateTokens() { var parser = new SimpleTextV1LexiconPolicyParser(); using (Stream stream = "X509.TBS.SerialNumber = f74f1c4fe4e1762e".ToStream()) { IList<SimpleTextV1LexiconPolicyParser.TokenTypeAssociation> tokens = parser.ParseToTokens(stream); tokens.Count.Should().Be(3); } }
public void TestBuildX509Field_UnknownField_AssertNull() { var parser = new SimpleTextV1LexiconPolicyParser(); IPolicyExpression field = parser.BuildX509Field("X509.Bogus"); Assert.Null(field); }
public void TestBuildX509Field_Signature_AssertFieldNotImplemented() { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyParseException>(() => parser.BuildX509Field("X509.Signature")); }
public void TestBuildExtensionField_ExtendedKeyUsage_AssertBuilt() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.ExtKeyUsageSyntax"); Assert.NotNull(field); Assert.Equal(typeof(ExtendedKeyUsageExtensionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.ExtKeyUsageSyntax+"); Assert.NotNull(field); Assert.Equal(typeof(ExtendedKeyUsageExtensionField), field.GetType()); Assert.True(field.IsRequired()); }
public void TestBuildExtensionField_FreshestCRL_AssertFieldNotImplemented() { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.FullName")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.FullName+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.RelativeToIssuer")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.RelativeToIssuer+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.Reasons")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.Reasons+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.CRLIssuer")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.FreshestCRL.CRLIssuer+")); }
public void TestBuildExtensionField_BasicContraints_AssertFields() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.BasicConstraints.CA"); Assert.NotNull(field); Assert.Equal(typeof(BasicContraintsExtensionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.BasicConstraints.CA+"); Assert.NotNull(field); Assert.Equal(typeof(BasicContraintsExtensionField), field.GetType()); Assert.True(field.IsRequired()); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.BasicConstraints.MaxPathLength")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.BasicConstraints.MaxPathLength+")); }
public void TestBuildExtensionField_CRLDispPoints_AssertFields() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.FullName"); Assert.NotNull(field); Assert.Equal(typeof(CRLDistributionPointNameExtentionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.FullName+"); Assert.NotNull(field); Assert.Equal(typeof(CRLDistributionPointNameExtentionField), field.GetType()); Assert.True(field.IsRequired()); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.RelativeToIssuer")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.RelativeToIssuer+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.Reasons")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.Reasons+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.CRLIssuer")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.CRLDistributionPoints.CRLIssuer+")); }
public void TestBuildExtensionField_UnknownField_AssertNull() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.Bogus"); Assert.Null(field); }
public void TestBuildExtensionField_AuhtorityInformationAccess_AssertFieldNotImplemented() { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectInfoAccessSyntax.Url")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectInfoAccessSyntax.Url+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectInfoAccessSyntax.AccessMethod")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectInfoAccessSyntax.AccessMethod+")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectInfoAccessSyntax.OCSPLocation")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectInfoAccessSyntax.OCSPLocation+")); }
public void TestBuildExtensionField_AuhtorityInformationAccess_AssertFields() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityInfoAccessSyntax.Url"); Assert.NotNull(field); Assert.Equal(typeof(AuthorityInfoAccessExtentionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityInfoAccessSyntax.Url+"); Assert.NotNull(field); Assert.Equal(typeof(AuthorityInfoAccessExtentionField), field.GetType()); Assert.True(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityInfoAccessSyntax.OCSPLocation"); Assert.NotNull(field); Assert.Equal(typeof(AuthorityInfoAccessOCSPLocExtentionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityInfoAccessSyntax.OCSPLocation+"); Assert.NotNull(field); Assert.Equal(typeof(AuthorityInfoAccessOCSPLocExtentionField), field.GetType()); Assert.True(field.IsRequired()); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityInfoAccessSyntax.AccessMethod")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.AuthorityInfoAccessSyntax.AccessMethod+")); }
public void TestExtensionBasicContraint_CA_AssertTrue() { var parser = new SimpleTextV1LexiconPolicyParser(); using (Stream stream = ("X509.TBS.EXTENSION.BasicConstraints.CA = true").ToStream()) { IList<SimpleTextV1LexiconPolicyParser.TokenTypeAssociation> tokens = parser.ParseToTokens(stream); tokens.Count.Should().Be(3); } using (Stream stream = ("X509.TBS.EXTENSION.BasicConstraints.CA = true").ToStream()) { IPolicyExpression expression = parser.Parse(stream); expression.Should().BeAssignableTo<OperationPolicyExpression>(); var operationPolicyExpression = expression as OperationPolicyExpression; operationPolicyExpression.GetOperands().Count.Should().Be(2); } }
public void TestBuildExtensionField_PolicyConstraints_AssertFieldNotImplemented() { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.PolicyConstraints")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.PolicyConstraints+")); }
public void TestBuildExtensionField_CertificatePolicies_AssertBuilt() { var parser = new SimpleTextV1LexiconPolicyParser(); dynamic field = parser.BuildExtensionField("X509.TBS.EXTENSION.CertificatePolicies.PolicyOIDs"); Assert.NotNull(field); Assert.Equal(typeof(CertificatePolicyIndentifierExtensionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.CertificatePolicies.PolicyOIDs+"); Assert.NotNull(field); Assert.Equal(typeof(CertificatePolicyIndentifierExtensionField), field.GetType()); Assert.True(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.CertificatePolicies.CPSUrls"); Assert.NotNull(field); Assert.Equal(typeof(CertificatePolicyCpsUriExtensionField), field.GetType()); Assert.False(field.IsRequired()); field = parser.BuildExtensionField("X509.TBS.EXTENSION.CertificatePolicies.CPSUrls+"); Assert.NotNull(field); Assert.Equal(typeof(CertificatePolicyCpsUriExtensionField), field.GetType()); Assert.True(field.IsRequired()); }
public void TestBuildExtensionField_SubjectDirectoryAttributes_AssertFieldNotImplemented() { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectDirectoryAttributes")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.SubjectDirectoryAttributes+")); }
public void TestBuildExtensionField_InhibitAnyPolicy_AssertFieldNotImplemented() { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.InhibitAnyPolicy")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.InhibitAnyPolicy+")); }
public void testParse_requiredCertField_validateTokens() { var parser = new SimpleTextV1LexiconPolicyParser(); using (Stream stream = "X509.TBS.EXTENSION.SubjectKeyIdentifier+ = 1.3.2.3".ToStream()) { IList<SimpleTextV1LexiconPolicyParser.TokenTypeAssociation> tokens = parser.ParseToTokens(stream); tokens.Count.Should().Be(3); } }
public void TestBuildExtensionField_IssuierAltName_AssertFieldNotImplemented() { var parser = new SimpleTextV1LexiconPolicyParser(); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.IssuerAltName")); Assert.Throws<PolicyParseException>(() => parser.BuildExtensionField("X509.TBS.EXTENSION.IssuerAltName+")); }