// This file is generated by cargo_embargo.
// Do not modify this file after the first "rust_*" or "genrule" module
// because the changes will be overridden on upgrade.
// Content before the first "rust_*" or "genrule" module is preserved.

// WARNING! This crate has a change in dependency structure that is not yet
// reflected on crates.io. This means that the automated update tool will
// not be able to handle the next update, and it will need to be performed
// manually - openssl-error and openssl-macros will need to be imported,
// and the applied patch will need to be rebased one directory down to apply
// to only the openssl crate if it is not yet upstreamed at that point.
//
// Even if upstreamed, cargo2android.py will likely never run correctly on
// this package without modification because boringssl does not intend to
// publish "bssl-sys" on crates.io, since it needs to match the exact local
// version of boringssl.

package {
    default_applicable_licenses: ["external_rust_crates_openssl_license"],
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "external_rust_crates_openssl_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-MIT",
        "SPDX-license-identifier-OpenSSL",
    ],
    license_text: [
        "LICENSE",
    ],
}

rust_library {
    name: "libopenssl",
    visibility: [
        ":__subpackages__",
        "//packages/modules/Virtualization/libs/apkverify",
        "//packages/modules/Virtualization/authfs",
        "//packages/modules/Virtualization/service_vm/client_vm_csr",
        "//packages/modules/Virtualization/virtualizationservice",
        "//system/security/keystore2/tests",
        "//system/authgraph/boringssl",
        "//packages/modules/Virtualization/libs/dice/driver",
        "//packages/modules/Virtualization/authfs/src/fsverity/metadata",
        "//tools/security/remote_provisioning/hwtrust",
        "//packages/modules/Virtualization/pvmfw/avb",
        "//packages/modules/Virtualization/microdroid_manager",
        "//system/keymint/boringssl",
        "//tools/netsim",
        "//packages/modules/Virtualization/vm_payload",
        "//system/software_defined_vehicle/core_services/service_discovery/sdv_sd_agent",
        "//system/software_defined_vehicle/core_services/vsidl/middleware/rpc/transport/grpc",
        "//system/software_defined_vehicle/core_services/service_authn",
        "//vendor:__subpackages__",
    ],
    host_supported: true,
    crate_name: "openssl",
    cargo_env_compat: true,
    cargo_pkg_version: "0.10.64",
    crate_root: "src/lib.rs",
    edition: "2018",
    features: ["unstable_boringssl"],
    cfgs: ["boringssl"],
    rustlibs: [
        "libbitflags",
        "libbssl_sys",
        "libcfg_if",
        "libforeign_types",
        "liblibc",
        "libonce_cell",
    ],
    proc_macros: ["libopenssl_macros"],
    aliases: ["openssl_sys:ffi"],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
    product_available: true,
    vendor_available: true,
}

rust_library_host_rlib {
    name: "libopenssl_static",
    crate_name: "openssl",
    cargo_env_compat: true,
    cargo_pkg_version: "0.10.64",
    crate_root: "src/lib.rs",
    edition: "2018",
    features: ["unstable_boringssl"],
    cfgs: ["boringssl"],
    rustlibs: [
        "libbitflags",
        "libcfg_if",
        "libforeign_types",
        "liblibc",
        "libonce_cell",
    ],
    rlibs: [
        "libbssl_sys_static",
    ],
    proc_macros: ["libopenssl_macros"],
    aliases: ["openssl_sys:ffi"],
}
