1cc_library_static {
2    name: "libring-core",
3    host_supported: true,
4    srcs: [
5        "crypto/cpu_intel.c",
6        "crypto/fipsmodule/aes/aes_nohw.c",
7        "crypto/crypto.c",
8        "crypto/poly1305/poly1305.c",
9        "crypto/poly1305/poly1305_vec.c",
10        "crypto/curve25519/curve25519.c",
11        "crypto/fipsmodule/ec/ecp_nistz.c",
12        "crypto/fipsmodule/ec/gfp_p256.c",
13        "crypto/fipsmodule/ec/gfp_p384.c",
14        "crypto/fipsmodule/ec/p256.c",
15        "crypto/fipsmodule/ec/p256-nistz.c",
16        "crypto/limbs/limbs.c",
17        "crypto/mem.c",
18        "crypto/fipsmodule/bn/montgomery.c",
19        "crypto/fipsmodule/bn/montgomery_inv.c",
20    ],
21
22    arch: {
23        arm: {
24            srcs: [
25                "crypto/poly1305/poly1305_arm.c",
26                "crypto/poly1305/poly1305_arm_asm.S",
27                "pregenerated/armv4-mont-linux32.S",
28                "crypto/curve25519/asm/x25519-asm-arm.S",
29                "pregenerated/sha256-armv4-linux32.S",
30                "pregenerated/sha512-armv4-linux32.S",
31                "pregenerated/aesv8-armx-linux32.S",
32                "pregenerated/bsaes-armv7-linux32.S",
33                "pregenerated/ghashv8-armx-linux32.S",
34                "pregenerated/vpaes-armv7-linux32.S",
35                "pregenerated/ghash-armv4-linux32.S",
36                "pregenerated/chacha-armv4-linux32.S",
37            ],
38        },
39        arm64: {
40            srcs: [
41                "pregenerated/aesv8-armx-linux64.S",
42                "pregenerated/armv8-mont-linux64.S",
43                "pregenerated/chacha20_poly1305_armv8-linux64.S",
44                "pregenerated/chacha-armv8-linux64.S",
45                "pregenerated/ghash-neon-armv8-linux64.S",
46                "pregenerated/ghashv8-armx-linux64.S",
47                "pregenerated/p256-armv8-asm-linux64.S",
48                "pregenerated/sha256-armv8-linux64.S",
49                "pregenerated/sha512-armv8-linux64.S",
50                "pregenerated/vpaes-armv8-linux64.S",
51            ],
52        },
53        x86: {
54            srcs: [
55                "pregenerated/aesni-x86-elf.S",
56                "pregenerated/chacha-x86-elf.S",
57                "pregenerated/ghash-x86-elf.S",
58                "pregenerated/vpaes-x86-elf.S",
59                "pregenerated/x86-mont-elf.S",
60            ],
61        },
62        x86_64: {
63            srcs: [
64                "crypto/curve25519/curve25519_64_adx.c",
65                "pregenerated/aesni-gcm-x86_64-elf.S",
66                "pregenerated/aesni-x86_64-elf.S",
67                "pregenerated/chacha-x86_64-elf.S",
68                "pregenerated/chacha20_poly1305_x86_64-elf.S",
69                "pregenerated/ghash-x86_64-elf.S",
70                "pregenerated/p256-x86_64-asm-elf.S",
71                "pregenerated/sha256-x86_64-elf.S",
72                "pregenerated/sha512-x86_64-elf.S",
73                "pregenerated/vpaes-x86_64-elf.S",
74                "pregenerated/x86_64-mont5-elf.S",
75                "pregenerated/x86_64-mont-elf.S",
76                "third_party/fiat/asm/fiat_curve25519_adx_mul.S",
77                "third_party/fiat/asm/fiat_curve25519_adx_square.S",
78            ],
79        },
80        riscv64: {
81            cflags: ["-DOPENSSL_NO_ASM"],
82        },
83    },
84
85    cflags: [
86        "-O3",
87        "-Wno-error",
88        "-fPIC",
89        "-fdata-sections",
90        "-ffunction-sections",
91        "-fno-omit-frame-pointer",
92        "-fno-strict-aliasing",
93        "-fstack-protector",
94        "-fvisibility=hidden",
95        "-DNDEBUG",
96    ],
97    local_include_dirs: ["include"],
98    apex_available: [
99        "//apex_available:platform",
100        "com.android.resolv",
101    ],
102    vendor_available: true,
103    product_available: true,
104    min_sdk_version: "29",
105}
106
107cc_library_static {
108    name: "libring-test",
109    host_supported: true,
110    srcs: [
111        "crypto/constant_time_test.c",
112    ],
113    local_include_dirs: ["include"],
114    apex_available: [
115        "//apex_available:platform",
116        "com.android.resolv",
117    ],
118    vendor_available: true,
119    product_available: true,
120    min_sdk_version: "29",
121}
122