// Copyright 2018 The Android Open Source Project
//
// 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.

java_sdk_library {
    name: "android.net.ipsec.ike",
    installable: true,
    defaults: ["framework-module-defaults"],

    // ike is used as a shared library.
    shared_library: true,

    aidl: {
        local_include_dirs: ["src/java"],
    },
    srcs: [":ike-srcs"],

    static_libs: [
        "ike-internals",
    ],

    libs: [
        "unsupportedappusage",
        "framework-annotations-lib",
        "conscrypt.module.public.api",
    ],

    api_packages: [
        "android.net.eap",
        "android.net.ipsec.ike",
        "android.net.ipsec.ike.exceptions",
        "android.net.ipsec.ike.exceptions.protocol",
        "android.net.ipsec.ike.ike3gpp",
    ],

    hidden_api_packages: [
        "com.android.internal.net",
    ],

    // Shared filegroups of BouncyCastle and frameworks are jar-jar'ed to avoid
    // being overwritten by the frameworks class copies.
    jarjar_rules: "jarjar-rules-shared.txt",

    hostdex: true, // for hiddenapi check
    apex_available: [
        "com.android.ipsec",
        "test_com.android.ipsec",
    ],

    permitted_packages: [
       "com.android.internal.net",
       "android.net.ipsec.ike",
       "android.net.eap",
    ],
    min_sdk_version: "30",
}

filegroup {
    name: "ike-srcs",
    srcs: [
        "src/java/**/*.java",
        ":framework-ike-shared-srcs",
    ],
}

filegroup {
    name: "ike-api-srcs",
    srcs: ["src/java/android/**/*.java"],
    path: "src/java/",
}

filegroup {
    name: "ike-aes-xcbc",
    srcs: ["src/java/**/AesXCbcImpl.java"],
}

// Provides internal classes needed to build the ike sources.
java_library {
    name: "ike-internals",
    apex_available: [
        "com.android.ipsec",
        "test_com.android.ipsec",
    ],
    static_libs: [
        "bouncycastle_ike_digests",
        "modules-utils-build",],
    sdk_version: "module_current",
}

java_library {
    name: "ike_test",
    installable: false, // Used only for testing; never installed alone.
    srcs: [":ike-srcs"],
    libs: ["unsupportedappusage"],
    static_libs: ["ike-internals"],

    // Shared filegroups of BouncyCastle and frameworks are jar-jar'ed to avoid
    // being overwritten by the frameworks class copies and break code coverage
    // reports. IKE source files are jarjared to avoid this test jar being
    // overshadowed by the IKE jar in framework and bootclasspath which will
    // cause compiling and runtime errors respectively.
    jarjar_rules: "jarjar-rules-test.txt",
}

java_library {
    name: "ike-test-utils-dependency",
    installable: false, // Used only for building the "ike-test-utils"
    srcs: ["src/java/**/IkeCertUtils.java"],
    jarjar_rules: "jarjar-rules-test.txt",
}

java_library {
    name: "ike-test-utils",
    srcs: ["tests/iketests/src/java/**/CertUtils.java"],
    static_libs: ["ike-test-utils-dependency"],
    libs: ["androidx.test.rules"],
    visibility: ["//packages/modules/IPsec/tests/cts"]
}
