xref: /aosp_15_r20/external/tink/cc/third_party/boringssl_fips/BUILD.bazel (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1licenses(["notice"])
2
3boringssl_headers = [
4    "boringssl/include/openssl/aead.h",
5    "boringssl/include/openssl/aes.h",
6    "boringssl/include/openssl/arm_arch.h",
7    "boringssl/include/openssl/asn1.h",
8    "boringssl/include/openssl/asn1_mac.h",
9    "boringssl/include/openssl/asn1t.h",
10    "boringssl/include/openssl/base64.h",
11    "boringssl/include/openssl/base.h",
12    "boringssl/include/openssl/bio.h",
13    "boringssl/include/openssl/blowfish.h",
14    "boringssl/include/openssl/bn.h",
15    "boringssl/include/openssl/buffer.h",
16    "boringssl/include/openssl/buf.h",
17    "boringssl/include/openssl/bytestring.h",
18    "boringssl/include/openssl/cast.h",
19    "boringssl/include/openssl/chacha.h",
20    "boringssl/include/openssl/cipher.h",
21    "boringssl/include/openssl/cmac.h",
22    "boringssl/include/openssl/conf.h",
23    "boringssl/include/openssl/cpu.h",
24    "boringssl/include/openssl/crypto.h",
25    "boringssl/include/openssl/curve25519.h",
26    "boringssl/include/openssl/des.h",
27    "boringssl/include/openssl/dh.h",
28    "boringssl/include/openssl/digest.h",
29    "boringssl/include/openssl/dsa.h",
30    "boringssl/include/openssl/dtls1.h",
31    "boringssl/include/openssl/ecdh.h",
32    "boringssl/include/openssl/ecdsa.h",
33    "boringssl/include/openssl/ec.h",
34    "boringssl/include/openssl/ec_key.h",
35    "boringssl/include/openssl/engine.h",
36    "boringssl/include/openssl/e_os2.h",
37    "boringssl/include/openssl/err.h",
38    "boringssl/include/openssl/evp.h",
39    "boringssl/include/openssl/ex_data.h",
40    "boringssl/include/openssl/hkdf.h",
41    "boringssl/include/openssl/hmac.h",
42    "boringssl/include/openssl/hrss.h",
43    "boringssl/include/openssl/is_boringssl.h",
44    "boringssl/include/openssl/lhash.h",
45    "boringssl/include/openssl/md4.h",
46    "boringssl/include/openssl/md5.h",
47    "boringssl/include/openssl/mem.h",
48    "boringssl/include/openssl/nid.h",
49    "boringssl/include/openssl/objects.h",
50    "boringssl/include/openssl/obj.h",
51    "boringssl/include/openssl/obj_mac.h",
52    "boringssl/include/openssl/opensslconf.h",
53    "boringssl/include/openssl/opensslv.h",
54    "boringssl/include/openssl/ossl_typ.h",
55    "boringssl/include/openssl/pem.h",
56    "boringssl/include/openssl/pkcs12.h",
57    "boringssl/include/openssl/pkcs7.h",
58    "boringssl/include/openssl/pkcs8.h",
59    "boringssl/include/openssl/poly1305.h",
60    "boringssl/include/openssl/pool.h",
61    "boringssl/include/openssl/rand.h",
62    "boringssl/include/openssl/rc4.h",
63    "boringssl/include/openssl/ripemd.h",
64    "boringssl/include/openssl/rsa.h",
65    "boringssl/include/openssl/safestack.h",
66    "boringssl/include/openssl/sha.h",
67    "boringssl/include/openssl/siphash.h",
68    "boringssl/include/openssl/span.h",
69    "boringssl/include/openssl/srtp.h",
70    "boringssl/include/openssl/ssl3.h",
71    "boringssl/include/openssl/ssl.h",
72    "boringssl/include/openssl/stack.h",
73    "boringssl/include/openssl/thread.h",
74    "boringssl/include/openssl/tls1.h",
75    "boringssl/include/openssl/type_check.h",
76    "boringssl/include/openssl/x509.h",
77    "boringssl/include/openssl/x509v3.h",
78    "boringssl/include/openssl/x509_vfy.h",
79]
80
81cc_library(
82    name = "crypto",
83    srcs = [
84        "libcrypto.so",
85    ],
86    hdrs = boringssl_headers,
87    includes = ["boringssl/include/"],
88    tags = [
89        "manual",  # This target will only work on Linux and should not be included in wildcard builds
90    ],
91    visibility = ["//visibility:public"],
92)
93
94cc_library(
95    name = "ssl",
96    srcs = [
97        "libssl.so",
98    ],
99    hdrs = boringssl_headers,
100    includes = ["boringssl/include/"],
101    tags = [
102        "manual",  # This target will only work on Linux and should not be included in wildcard builds
103    ],
104    visibility = ["//visibility:public"],
105    deps = [
106        ":crypto",
107    ],
108)
109
110genrule(
111    name = "build_fipsmodule",
112    srcs = [
113        "boringssl_fips.sh",
114    ],
115    outs = [
116        "libcrypto.so",
117        "libssl.so",
118    ] + boringssl_headers,
119    cmd = """
120      ./$(location boringssl_fips.sh)
121      cp boringssl/build/crypto/libcrypto.so $(location libcrypto.so)
122      cp boringssl/build/ssl/libssl.so $(location libssl.so)
123    """ + "".join(["cp " + header + " " + "$(location " + header + ")\n" for header in boringssl_headers]),
124    tags = [
125        "manual",  # This target will only work on Linux and should not be included in wildcard builds
126    ],
127)
128