1# Description: 2# SecAgg components shared between client and server. 3 4load("//fcp:config.bzl", "FCP_COPTS") 5 6package( 7 default_visibility = ["//fcp:internal"], 8) 9 10proto_library( 11 name = "proto", 12 srcs = ["secagg_messages.proto"], 13 visibility = ["//visibility:public"], 14 deps = [ 15 "@com_google_protobuf//:any_proto", 16 ], 17) 18 19cc_proto_library( 20 name = "cc_proto", 21 visibility = ["//visibility:public"], 22 deps = [ 23 ":proto", 24 ], 25) 26 27cc_library( 28 name = "shared", 29 srcs = [ 30 "aes_ctr_prng.cc", 31 "aes_ctr_prng_factory.cc", 32 "aes_gcm_encryption.cc", 33 "aes_key.cc", 34 "compute_session_id.cc", 35 "crypto_rand_prng.cc", 36 "ecdh_key_agreement.cc", 37 "input_vector_specification.cc", 38 "map_of_masks.cc", 39 "secagg_vector.cc", 40 "shamir_secret_sharing.cc", 41 ], 42 hdrs = [ 43 "aes_ctr_prng.h", 44 "aes_ctr_prng_factory.h", 45 "aes_gcm_encryption.h", 46 "aes_key.h", 47 "aes_prng_factory.h", 48 "async_abort.h", 49 "compute_session_id.h", 50 "crypto_rand_prng.h", 51 "ecdh_key_agreement.h", 52 "ecdh_keys.h", 53 "input_vector_specification.h", 54 "key.h", 55 "map_of_masks.h", 56 "math.h", 57 "prng.h", 58 "secagg_vector.h", 59 "shamir_secret_sharing.h", 60 ], 61 copts = FCP_COPTS, 62 deps = [ 63 ":cc_proto", 64 "//fcp/base", 65 "@boringssl//:crypto", 66 "@com_google_absl//absl/base:core_headers", 67 "@com_google_absl//absl/base:endian", 68 "@com_google_absl//absl/container:flat_hash_map", 69 "@com_google_absl//absl/container:node_hash_map", 70 "@com_google_absl//absl/numeric:bits", 71 "@com_google_absl//absl/numeric:int128", 72 "@com_google_absl//absl/status:statusor", 73 "@com_google_absl//absl/strings", 74 "@com_google_absl//absl/synchronization", 75 "@com_google_absl//absl/types:span", 76 ], 77) 78 79cc_test( 80 name = "aes_gcm_encryption_test", 81 size = "small", 82 srcs = [ 83 "aes_gcm_encryption_test.cc", 84 ], 85 copts = FCP_COPTS, 86 deps = [ 87 ":shared", 88 "@com_google_googletest//:gtest_main", 89 ], 90) 91 92cc_test( 93 name = "aes_key_test", 94 size = "small", 95 srcs = [ 96 "aes_key_test.cc", 97 ], 98 copts = FCP_COPTS, 99 deps = [ 100 ":shared", 101 "@com_google_absl//absl/strings", 102 "@com_google_googletest//:gtest_main", 103 ], 104) 105 106cc_test( 107 name = "aes_prng_tests", 108 size = "small", 109 srcs = [ 110 "aes_ctr_prng_test.cc", 111 ], 112 copts = FCP_COPTS, 113 deps = [ 114 ":shared", 115 "@com_google_googletest//:gtest_main", 116 ], 117) 118 119cc_test( 120 name = "compute_session_id_test", 121 size = "small", 122 srcs = [ 123 "compute_session_id_test.cc", 124 ], 125 copts = FCP_COPTS, 126 deps = [ 127 ":shared", 128 "@com_google_googletest//:gtest_main", 129 ], 130) 131 132cc_test( 133 name = "ecdh_test", 134 size = "small", 135 srcs = ["ecdh_key_agreement_test.cc"], 136 copts = FCP_COPTS, 137 deps = [ 138 ":shared", 139 "//fcp/secagg/testing:common_mocks", 140 "@com_google_googletest//:gtest_main", 141 ], 142) 143 144cc_test( 145 name = "input_vector_specification_test", 146 size = "small", 147 srcs = [ 148 "input_vector_specification_test.cc", 149 ], 150 copts = FCP_COPTS, 151 deps = [ 152 ":shared", 153 "@com_google_googletest//:gtest_main", 154 ], 155) 156 157cc_test( 158 name = "map_of_masks_test", 159 size = "small", 160 srcs = [ 161 "map_of_masks_test.cc", 162 ], 163 copts = FCP_COPTS, 164 deps = [ 165 ":shared", 166 "@com_google_absl//absl/container:flat_hash_map", 167 "@com_google_absl//absl/container:node_hash_map", 168 "@com_google_absl//absl/numeric:bits", 169 "@com_google_absl//absl/strings", 170 "@com_google_googletest//:gtest_main", 171 ], 172) 173 174cc_test( 175 name = "map_of_masks_bench", 176 size = "large", 177 srcs = [ 178 "map_of_masks_bench.cc", 179 ], 180 copts = FCP_COPTS, 181 linkstatic = 1, 182 deps = [ 183 ":shared", 184 "@com_google_absl//absl/numeric:bits", 185 "@com_google_absl//absl/strings", 186 "@com_google_benchmark//:benchmark_main", 187 ], 188) 189 190cc_test( 191 name = "math_test", 192 size = "small", 193 srcs = [ 194 "math_test.cc", 195 ], 196 copts = FCP_COPTS, 197 deps = [ 198 ":shared", 199 "@com_google_googletest//:gtest_main", 200 ], 201) 202 203cc_test( 204 name = "secagg_vector_test", 205 size = "large", 206 srcs = [ 207 "secagg_vector_test.cc", 208 ], 209 copts = FCP_COPTS, 210 deps = [ 211 ":shared", 212 "@com_google_googletest//:gtest_main", 213 ], 214) 215 216cc_test( 217 name = "secagg_vector_bench", 218 size = "large", 219 srcs = [ 220 "secagg_vector_bench.cc", 221 ], 222 copts = FCP_COPTS, 223 linkstatic = 1, 224 deps = [ 225 ":shared", 226 "@com_google_benchmark//:benchmark_main", 227 ], 228) 229 230cc_test( 231 name = "shamir_secret_sharing_test", 232 size = "small", 233 srcs = [ 234 "shamir_secret_sharing_test.cc", 235 ], 236 copts = FCP_COPTS, 237 deps = [ 238 ":shared", 239 "//fcp/secagg/testing:common_mocks", 240 "@com_google_googletest//:gtest_main", 241 ], 242) 243 244cc_binary( 245 name = "add_maps_bench", 246 testonly = 1, 247 srcs = [ 248 "add_maps_bench.cc", 249 ], 250 copts = FCP_COPTS, 251 deps = [ 252 ":shared", 253 "@com_google_benchmark//:benchmark_main", 254 ], 255) 256