# Copyright 2021 Code Intelligence GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

_sanitizer_package_prefix = "com.code_intelligence.jazzer.sanitizers."

_sanitizer_class_names = [
    # keep sorted
    "Deserialization",
    "ExpressionLanguageInjection",
    "LdapInjection",
    "NamingContextLookup",
    "OsCommandInjection",
    "ReflectiveCall",
    "RegexInjection",
    "RegexRoadblocks",
    "ScriptEngineInjection",
    "ServerSideRequestForgery",
    "SqlInjection",
    "XPathInjection",
]

SANITIZER_CLASSES = [_sanitizer_package_prefix + class_name for class_name in _sanitizer_class_names]
