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