protected override SyntaxNodeAnalyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes)
 {
     SyntaxNodeAnalyzer analyzer = new SyntaxNodeAnalyzer(cryptTypes);
     context.RegisterSyntaxNodeAction(analyzer.AnalyzeNode,
                                      SyntaxKind.InvocationExpression,
                                      SyntaxKind.ObjectCreationExpression);
     return analyzer;
 }
 public override void Initialize(AnalysisContext analysisContext)
 {
     analysisContext.RegisterCompilationStartAction(
         (context) =>
         {
             var cryptTypes = new CompilationSecurityTypes(context.Compilation);
             if (ReferencesAnyTargetType(cryptTypes))
             {
                 GetAnalyzer(context, cryptTypes);
             }
         });
 }
        public override void Initialize(AnalysisContext analysisContext)
        {
            analysisContext.EnableConcurrentExecution();

            // Security analyzer - analyze and report diagnostics on generated code.
            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.Analyze | GeneratedCodeAnalysisFlags.ReportDiagnostics);

            analysisContext.RegisterCompilationStartAction(
                context =>
                {
                    var cryptTypes = new CompilationSecurityTypes(context.Compilation);
                    if (ReferencesAnyTargetType(cryptTypes))
                    {
                        GetAnalyzer(context, cryptTypes);
                    }
                });
        }
Пример #4
0
 public SyntaxNodeAnalyzer(CompilationSecurityTypes cryptTypes)
 {
     _cryptTypes = cryptTypes;
 }
Пример #5
0
 private static bool ReferencesAnyTargetType(CompilationSecurityTypes types)
 {
     return(types.MD5 != null ||
            types.SHA1 != null ||
            types.HMACSHA1 != null);
 }
Пример #6
0
 protected abstract SyntaxNodeAnalyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes);
 public Analyzer(CompilationSecurityTypes cryptTypes)
 {
     _cryptTypes = cryptTypes; 
 }
 private static bool ReferencesAnyTargetType(CompilationSecurityTypes types)
 {
     return types.MD5 != null 
         || types.SHA1 != null
         || types.HMACSHA1 != null;
 }
 protected abstract Analyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes);
Пример #10
0
        protected override Analyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes)
        {
            Analyzer analyzer = new Analyzer(cryptTypes);

            context.RegisterSyntaxNodeAction(analyzer.AnalyzeNode,
                                             SyntaxKind.InvocationExpression,
                                             SyntaxKind.ObjectCreationExpression);
            return(analyzer);
        }
 public SyntaxNodeAnalyzer(CompilationSecurityTypes cryptTypes)
 {
     _cryptTypes = cryptTypes;
 }
Пример #12
0
 public Analyzer(CompilationSecurityTypes cryptTypes)
 {
     _cryptTypes = cryptTypes;
 }