Skip to content

Commit

Permalink
Reduced to 2 rules
Browse files Browse the repository at this point in the history
  • Loading branch information
qinxgit committed Nov 23, 2015
1 parent 894c06d commit 7d9f809
Showing 1 changed file with 11 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,44 +26,19 @@ public abstract class DoNotUseInsecureCryptographicAlgorithmsAnalyzer : Diagnost
private static readonly LocalizableString s_localizableDoNotUseBrokenAlgorithmsMessage = DiagnosticHelpers.GetLocalizableResourceString(nameof(DesktopAnalyzersResources.DoNotUseBrokenCryptographicAlgorithmsMessage));
private static readonly LocalizableString s_localizableDoNotUseBrokenAlgorithmsDescription = DiagnosticHelpers.GetLocalizableResourceString(nameof(DesktopAnalyzersResources.DoNotUseBrokenCryptographicAlgorithmsDescription));

internal static DiagnosticDescriptor DoNotUseMD5SpecificRule = CreateDiagnosticDescriptor(DoNotUseBrokenCryptographicRuleId,
internal static DiagnosticDescriptor DoNotUseBrokenCryptographicRule = CreateDiagnosticDescriptor(DoNotUseBrokenCryptographicRuleId,
s_localizableDoNotUseBrokenAlgorithmsTitle,
s_localizableDoNotUseBrokenAlgorithmsMessage,
s_localizableDoNotUseBrokenAlgorithmsDescription);

internal static DiagnosticDescriptor DoNotUseDESSpecificRule = CreateDiagnosticDescriptor(DoNotUseBrokenCryptographicRuleId,
s_localizableDoNotUseBrokenAlgorithmsTitle,
s_localizableDoNotUseBrokenAlgorithmsMessage,
s_localizableDoNotUseBrokenAlgorithmsDescription);

internal static DiagnosticDescriptor DoNotUseRC2SpecificRule = CreateDiagnosticDescriptor(DoNotUseBrokenCryptographicRuleId,
s_localizableDoNotUseBrokenAlgorithmsTitle,
s_localizableDoNotUseBrokenAlgorithmsMessage,
s_localizableDoNotUseBrokenAlgorithmsDescription);

internal static DiagnosticDescriptor DoNotUseTripleDESSpecificRule = CreateDiagnosticDescriptor(DoNotUseWeakCryptographicRuleId,
internal static DiagnosticDescriptor DoNotUseWeakCryptographicRule = CreateDiagnosticDescriptor(DoNotUseWeakCryptographicRuleId,
s_localizableDoNotUseWeakAlgorithmsTitle,
s_localizableDoNotUseWeakAlgorithmsMessage,
s_localizableDoNotUseWeakAlgorithmsDescription);

internal static DiagnosticDescriptor DoNotUseRIPEMD160SpecificRule = CreateDiagnosticDescriptor(DoNotUseWeakCryptographicRuleId,
s_localizableDoNotUseWeakAlgorithmsTitle,
s_localizableDoNotUseWeakAlgorithmsMessage,
s_localizableDoNotUseWeakAlgorithmsDescription);

internal static DiagnosticDescriptor DoNotUseDSASpecificRule = CreateDiagnosticDescriptor(DoNotUseBrokenCryptographicRuleId,
s_localizableDoNotUseBrokenAlgorithmsTitle,
s_localizableDoNotUseBrokenAlgorithmsMessage,
s_localizableDoNotUseBrokenAlgorithmsDescription);

protected abstract Analyzer GetAnalyzer(CompilationStartAnalysisContext context, CompilationSecurityTypes cryptTypes);

private static readonly ImmutableArray<DiagnosticDescriptor> s_supportedDiagnostics = ImmutableArray.Create(DoNotUseMD5SpecificRule,
DoNotUseDESSpecificRule,
DoNotUseRC2SpecificRule,
DoNotUseTripleDESSpecificRule,
DoNotUseRIPEMD160SpecificRule,
DoNotUseDSASpecificRule);
private static readonly ImmutableArray<DiagnosticDescriptor> s_supportedDiagnostics = ImmutableArray.Create(DoNotUseWeakCryptographicRule,
DoNotUseBrokenCryptographicRule);

public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics
=> s_supportedDiagnostics;
Expand Down Expand Up @@ -157,39 +132,39 @@ public void AnalyzeNode(SyntaxNodeAnalysisContext context)

if (type.IsDerivedFrom(this._cryptTypes.DES, baseTypesOnly: true))
{
rule = DoNotUseDESSpecificRule;
rule = DoNotUseBrokenCryptographicRule;
messageArgs[1] = _cryptTypes.DES.Name;
}
else if (method.MatchMethodDerived(_cryptTypes.DSA, SecurityMemberNames.CreateSignature) ||
(type == _cryptTypes.DSASignatureFormatter &&
method.MatchMethodDerived(_cryptTypes.DSASignatureFormatter, WellKnownMemberNames.InstanceConstructorName)))
{
rule = DoNotUseDSASpecificRule;
rule = DoNotUseBrokenCryptographicRule;
messageArgs[1] = _cryptTypes.DSA.Name;
}
else if (type.IsDerivedFrom(_cryptTypes.HMACMD5, baseTypesOnly: true))
{
rule = DoNotUseMD5SpecificRule;
rule = DoNotUseBrokenCryptographicRule;
messageArgs[1] = _cryptTypes.HMACMD5.Name;
}
else if (type.IsDerivedFrom(_cryptTypes.RC2, baseTypesOnly: true))
{
rule = DoNotUseRC2SpecificRule;
rule = DoNotUseBrokenCryptographicRule;
messageArgs[1] = _cryptTypes.RC2.Name;
}
else if (type.IsDerivedFrom(_cryptTypes.TripleDES, baseTypesOnly: true))
{
rule = DoNotUseTripleDESSpecificRule;
rule = DoNotUseWeakCryptographicRule;
messageArgs[1] = _cryptTypes.TripleDES.Name;
}
else if (type.IsDerivedFrom(_cryptTypes.RIPEMD160, baseTypesOnly: true))
{
rule = DoNotUseRIPEMD160SpecificRule;
rule = DoNotUseWeakCryptographicRule;
messageArgs[1] = _cryptTypes.RIPEMD160.Name;
}
else if (type.IsDerivedFrom(_cryptTypes.HMACRIPEMD160, baseTypesOnly: true))
{
rule = DoNotUseRIPEMD160SpecificRule;
rule = DoNotUseWeakCryptographicRule;
messageArgs[1] = _cryptTypes.HMACRIPEMD160.Name;
}

Expand Down

0 comments on commit 7d9f809

Please sign in to comment.