licenses(["notice"]) boringssl_headers = [ "boringssl/include/openssl/aead.h", "boringssl/include/openssl/aes.h", "boringssl/include/openssl/arm_arch.h", "boringssl/include/openssl/asn1.h", "boringssl/include/openssl/asn1_mac.h", "boringssl/include/openssl/asn1t.h", "boringssl/include/openssl/base64.h", "boringssl/include/openssl/base.h", "boringssl/include/openssl/bio.h", "boringssl/include/openssl/blowfish.h", "boringssl/include/openssl/bn.h", "boringssl/include/openssl/buffer.h", "boringssl/include/openssl/buf.h", "boringssl/include/openssl/bytestring.h", "boringssl/include/openssl/cast.h", "boringssl/include/openssl/chacha.h", "boringssl/include/openssl/cipher.h", "boringssl/include/openssl/cmac.h", "boringssl/include/openssl/conf.h", "boringssl/include/openssl/cpu.h", "boringssl/include/openssl/crypto.h", "boringssl/include/openssl/curve25519.h", "boringssl/include/openssl/des.h", "boringssl/include/openssl/dh.h", "boringssl/include/openssl/digest.h", "boringssl/include/openssl/dsa.h", "boringssl/include/openssl/dtls1.h", "boringssl/include/openssl/ecdh.h", "boringssl/include/openssl/ecdsa.h", "boringssl/include/openssl/ec.h", "boringssl/include/openssl/ec_key.h", "boringssl/include/openssl/engine.h", "boringssl/include/openssl/e_os2.h", "boringssl/include/openssl/err.h", "boringssl/include/openssl/evp.h", "boringssl/include/openssl/ex_data.h", "boringssl/include/openssl/hkdf.h", "boringssl/include/openssl/hmac.h", "boringssl/include/openssl/hrss.h", "boringssl/include/openssl/is_boringssl.h", "boringssl/include/openssl/lhash.h", "boringssl/include/openssl/md4.h", "boringssl/include/openssl/md5.h", "boringssl/include/openssl/mem.h", "boringssl/include/openssl/nid.h", "boringssl/include/openssl/objects.h", "boringssl/include/openssl/obj.h", "boringssl/include/openssl/obj_mac.h", "boringssl/include/openssl/opensslconf.h", "boringssl/include/openssl/opensslv.h", "boringssl/include/openssl/ossl_typ.h", "boringssl/include/openssl/pem.h", "boringssl/include/openssl/pkcs12.h", "boringssl/include/openssl/pkcs7.h", "boringssl/include/openssl/pkcs8.h", "boringssl/include/openssl/poly1305.h", "boringssl/include/openssl/pool.h", "boringssl/include/openssl/rand.h", "boringssl/include/openssl/rc4.h", "boringssl/include/openssl/ripemd.h", "boringssl/include/openssl/rsa.h", "boringssl/include/openssl/safestack.h", "boringssl/include/openssl/sha.h", "boringssl/include/openssl/siphash.h", "boringssl/include/openssl/span.h", "boringssl/include/openssl/srtp.h", "boringssl/include/openssl/ssl3.h", "boringssl/include/openssl/ssl.h", "boringssl/include/openssl/stack.h", "boringssl/include/openssl/thread.h", "boringssl/include/openssl/tls1.h", "boringssl/include/openssl/type_check.h", "boringssl/include/openssl/x509.h", "boringssl/include/openssl/x509v3.h", "boringssl/include/openssl/x509_vfy.h", ] cc_library( name = "crypto", srcs = [ "libcrypto.so", ], hdrs = boringssl_headers, includes = ["boringssl/include/"], tags = [ "manual", # This target will only work on Linux and should not be included in wildcard builds ], visibility = ["//visibility:public"], ) cc_library( name = "ssl", srcs = [ "libssl.so", ], hdrs = boringssl_headers, includes = ["boringssl/include/"], tags = [ "manual", # This target will only work on Linux and should not be included in wildcard builds ], visibility = ["//visibility:public"], deps = [ ":crypto", ], ) genrule( name = "build_fipsmodule", srcs = [ "boringssl_fips.sh", ], outs = [ "libcrypto.so", "libssl.so", ] + boringssl_headers, cmd = """ ./$(location boringssl_fips.sh) cp boringssl/build/crypto/libcrypto.so $(location libcrypto.so) cp boringssl/build/ssl/libssl.so $(location libssl.so) """ + "".join(["cp " + header + " " + "$(location " + header + ")\n" for header in boringssl_headers]), tags = [ "manual", # This target will only work on Linux and should not be included in wildcard builds ], )