1package(default_visibility = ["//:__subpackages__"]) 2 3licenses(["notice"]) 4 5cc_library( 6 name = "buffer", 7 srcs = ["buffer.cc"], 8 hdrs = ["buffer.h"], 9 include_prefix = "tink/util", 10 visibility = ["//visibility:public"], 11 deps = [ 12 ":status", 13 ":statusor", 14 "@com_google_absl//absl/memory", 15 "@com_google_absl//absl/status", 16 ], 17) 18 19cc_library( 20 name = "constants", 21 srcs = ["constants.cc"], 22 hdrs = ["constants.h"], 23 include_prefix = "tink/util", 24 deps = ["@com_google_absl//absl/base:core_headers"], 25) 26 27cc_library( 28 name = "secret_data_internal", 29 hdrs = ["secret_data_internal.h"], 30 include_prefix = "tink/util", 31 visibility = ["//visibility:private"], 32 deps = [ 33 "@boringssl//:crypto", 34 "@com_google_absl//absl/base:config", 35 "@com_google_absl//absl/base:core_headers", 36 ], 37) 38 39cc_library( 40 name = "secret_data", 41 hdrs = ["secret_data.h"], 42 include_prefix = "tink/util", 43 visibility = ["//visibility:public"], 44 deps = [ 45 ":secret_data_internal", 46 "@com_google_absl//absl/strings", 47 ], 48) 49 50cc_library( 51 name = "secret_proto", 52 hdrs = ["secret_proto.h"], 53 include_prefix = "tink/util", 54 visibility = ["//visibility:public"], 55 deps = [ 56 ":secret_data", 57 ":status", 58 ":statusor", 59 "@com_google_absl//absl/memory", 60 "@com_google_protobuf//:protobuf", 61 ], 62) 63 64cc_library( 65 name = "errors", 66 hdrs = ["errors.h"], 67 include_prefix = "tink/util", 68 deps = [ 69 ":status", 70 "@com_google_absl//absl/strings:str_format", 71 ], 72) 73 74cc_library( 75 name = "enums", 76 srcs = ["enums.cc"], 77 hdrs = ["enums.h"], 78 include_prefix = "tink/util", 79 visibility = ["//visibility:public"], 80 deps = [ 81 ":status", 82 ":statusor", 83 "//proto:common_cc_proto", 84 "//proto:ecdsa_cc_proto", 85 "//proto:tink_cc_proto", 86 "//subtle:common_enums", 87 "@com_google_absl//absl/status", 88 "@com_google_absl//absl/strings", 89 ], 90) 91 92cc_library( 93 name = "status", 94 hdrs = ["status.h"], 95 include_prefix = "tink/util", 96 visibility = ["//visibility:public"], 97 deps = ["@com_google_absl//absl/status"], 98) 99 100cc_library( 101 name = "statusor", 102 hdrs = ["statusor.h"], 103 include_prefix = "tink/util", 104 visibility = ["//visibility:public"], 105 deps = [ 106 ":status", 107 "@com_google_absl//absl/status:statusor", 108 ], 109) 110 111cc_library( 112 name = "validation", 113 srcs = ["validation.cc"], 114 hdrs = ["validation.h"], 115 include_prefix = "tink/util", 116 deps = [ 117 ":errors", 118 ":status", 119 "//proto:tink_cc_proto", 120 "@com_google_absl//absl/status", 121 ], 122) 123 124cc_library( 125 name = "file_input_stream", 126 srcs = ["file_input_stream.cc"], 127 hdrs = ["file_input_stream.h"], 128 include_prefix = "tink/util", 129 target_compatible_with = select({ 130 "@platforms//os:windows": ["@platforms//:incompatible"], 131 "//conditions:default": [], 132 }), 133 visibility = ["//visibility:public"], 134 deps = [ 135 ":errors", 136 ":status", 137 ":statusor", 138 "//:input_stream", 139 "@com_google_absl//absl/status", 140 ], 141) 142 143cc_library( 144 name = "file_output_stream", 145 srcs = ["file_output_stream.cc"], 146 hdrs = ["file_output_stream.h"], 147 include_prefix = "tink/util", 148 target_compatible_with = select({ 149 "@platforms//os:windows": ["@platforms//:incompatible"], 150 "//conditions:default": [], 151 }), 152 visibility = ["//visibility:public"], 153 deps = [ 154 ":errors", 155 ":status", 156 ":statusor", 157 "//:output_stream", 158 "@com_google_absl//absl/memory", 159 "@com_google_absl//absl/status", 160 ], 161) 162 163cc_library( 164 name = "file_random_access_stream", 165 srcs = ["file_random_access_stream.cc"], 166 hdrs = ["file_random_access_stream.h"], 167 include_prefix = "tink/util", 168 target_compatible_with = select({ 169 "@platforms//os:windows": ["@platforms//:incompatible"], 170 "//conditions:default": [], 171 }), 172 visibility = ["//visibility:public"], 173 deps = [ 174 ":buffer", 175 ":errors", 176 ":status", 177 ":statusor", 178 "//:random_access_stream", 179 "@com_google_absl//absl/memory", 180 "@com_google_absl//absl/status", 181 ], 182) 183 184cc_library( 185 name = "istream_input_stream", 186 srcs = ["istream_input_stream.cc"], 187 hdrs = ["istream_input_stream.h"], 188 include_prefix = "tink/util", 189 visibility = ["//visibility:public"], 190 deps = [ 191 ":errors", 192 ":status", 193 ":statusor", 194 "//:input_stream", 195 "@com_google_absl//absl/memory", 196 "@com_google_absl//absl/status", 197 ], 198) 199 200cc_library( 201 name = "ostream_output_stream", 202 srcs = ["ostream_output_stream.cc"], 203 hdrs = ["ostream_output_stream.h"], 204 include_prefix = "tink/util", 205 visibility = ["//visibility:public"], 206 deps = [ 207 ":errors", 208 ":status", 209 ":statusor", 210 "//:output_stream", 211 "@com_google_absl//absl/memory", 212 "@com_google_absl//absl/status", 213 ], 214) 215 216cc_library( 217 name = "test_util", 218 testonly = 1, 219 srcs = ["test_util.cc"], 220 hdrs = ["test_util.h"], 221 include_prefix = "tink/util", 222 visibility = ["//visibility:public"], 223 deps = [ 224 ":buffer", 225 ":constants", 226 ":enums", 227 ":protobuf_helper", 228 ":secret_data", 229 ":status", 230 ":statusor", 231 "//:aead", 232 "//:cleartext_keyset_handle", 233 "//:deterministic_aead", 234 "//:hybrid_decrypt", 235 "//:hybrid_encrypt", 236 "//:input_stream", 237 "//:keyset_handle", 238 "//:kms_client", 239 "//:mac", 240 "//:output_stream", 241 "//:public_key_sign", 242 "//:public_key_verify", 243 "//:random_access_stream", 244 "//:streaming_aead", 245 "//aead:aes_ctr_hmac_aead_key_manager", 246 "//aead:aes_gcm_key_manager", 247 "//aead:cord_aead", 248 "//aead:xchacha20_poly1305_key_manager", 249 "//daead:aes_siv_key_manager", 250 "//internal:ec_util", 251 "//proto:aes_ctr_cc_proto", 252 "//proto:aes_ctr_hmac_aead_cc_proto", 253 "//proto:aes_siv_cc_proto", 254 "//proto:common_cc_proto", 255 "//proto:ecdsa_cc_proto", 256 "//proto:ecies_aead_hkdf_cc_proto", 257 "//proto:ed25519_cc_proto", 258 "//proto:hmac_cc_proto", 259 "//proto:tink_cc_proto", 260 "//proto:xchacha20_poly1305_cc_proto", 261 "//subtle:common_enums", 262 "//subtle:random", 263 "//subtle/mac:stateful_mac", 264 "@com_google_absl//absl/base:core_headers", 265 "@com_google_absl//absl/memory", 266 "@com_google_absl//absl/status", 267 "@com_google_absl//absl/strings", 268 "@com_google_absl//absl/strings:cord", 269 "@com_google_absl//absl/synchronization", 270 ], 271) 272 273cc_library( 274 name = "test_matchers", 275 testonly = 1, 276 hdrs = ["test_matchers.h"], 277 include_prefix = "tink/util", 278 visibility = ["//visibility:public"], 279 deps = [ 280 ":status", 281 ":statusor", 282 "@com_google_absl//absl/status", 283 "@com_google_googletest//:gtest", 284 ], 285) 286 287cc_library( 288 name = "protobuf_helper", 289 hdrs = ["protobuf_helper.h"], 290 include_prefix = "tink/util", 291 deps = ["@com_google_protobuf//:protobuf"], 292) 293 294cc_library( 295 name = "test_keyset_handle", 296 testonly = 1, 297 srcs = ["test_keyset_handle.cc"], 298 hdrs = ["test_keyset_handle.h"], 299 include_prefix = "tink/util", 300 deps = [ 301 "//:keyset_handle", 302 "//proto:tink_cc_proto", 303 "@com_google_absl//absl/memory", 304 ], 305) 306 307cc_library( 308 name = "input_stream_util", 309 srcs = ["input_stream_util.cc"], 310 hdrs = ["input_stream_util.h"], 311 include_prefix = "tink/util", 312 deps = [ 313 ":secret_data", 314 ":statusor", 315 "//:input_stream", 316 "@com_google_absl//absl/algorithm:container", 317 "@com_google_absl//absl/strings", 318 "@com_google_absl//absl/types:span", 319 ], 320) 321 322cc_library( 323 name = "keyset_util", 324 srcs = ["keyset_util.cc"], 325 hdrs = ["keyset_util.h"], 326 include_prefix = "tink/util", 327 deps = ["//proto:tink_cc_proto"], 328) 329 330cc_library( 331 name = "fake_kms_client", 332 testonly = 1, 333 srcs = ["fake_kms_client.cc"], 334 hdrs = ["fake_kms_client.h"], 335 include_prefix = "tink/util", 336 visibility = ["//visibility:public"], 337 deps = [ 338 ":errors", 339 ":status", 340 ":statusor", 341 "//:aead", 342 "//:binary_keyset_reader", 343 "//:binary_keyset_writer", 344 "//:cleartext_keyset_handle", 345 "//:keyset_handle", 346 "//:kms_client", 347 "//:kms_clients", 348 "//aead:aead_key_templates", 349 "@com_google_absl//absl/status", 350 "@com_google_absl//absl/strings", 351 ], 352) 353 354# tests 355 356cc_test( 357 name = "buffer_test", 358 size = "small", 359 srcs = ["buffer_test.cc"], 360 deps = [ 361 ":buffer", 362 ":status", 363 ":test_matchers", 364 "//subtle:random", 365 "@com_google_absl//absl/memory", 366 "@com_google_absl//absl/status", 367 "@com_google_absl//absl/strings", 368 "@com_google_googletest//:gtest_main", 369 ], 370) 371 372cc_test( 373 name = "errors_test", 374 size = "small", 375 srcs = ["errors_test.cc"], 376 deps = [ 377 ":errors", 378 ":status", 379 "@com_google_absl//absl/status", 380 "@com_google_googletest//:gtest_main", 381 ], 382) 383 384cc_test( 385 name = "enums_test", 386 size = "small", 387 srcs = ["enums_test.cc"], 388 deps = [ 389 ":enums", 390 "//proto:common_cc_proto", 391 "//subtle:common_enums", 392 "@com_google_googletest//:gtest_main", 393 ], 394) 395 396cc_test( 397 name = "file_input_stream_test", 398 srcs = ["file_input_stream_test.cc"], 399 target_compatible_with = select({ 400 "@platforms//os:windows": ["@platforms//:incompatible"], 401 "//conditions:default": [], 402 }), 403 deps = [ 404 ":file_input_stream", 405 ":status", 406 ":test_matchers", 407 ":test_util", 408 "//internal:test_file_util", 409 "//subtle:random", 410 "@com_google_absl//absl/memory", 411 "@com_google_absl//absl/status", 412 "@com_google_absl//absl/strings", 413 "@com_google_googletest//:gtest_main", 414 ], 415) 416 417cc_test( 418 name = "file_output_stream_test", 419 srcs = ["file_output_stream_test.cc"], 420 target_compatible_with = select({ 421 "@platforms//os:windows": ["@platforms//:incompatible"], 422 "//conditions:default": [], 423 }), 424 deps = [ 425 ":file_output_stream", 426 ":test_matchers", 427 ":test_util", 428 "//internal:test_file_util", 429 "//subtle:random", 430 "@com_google_absl//absl/memory", 431 "@com_google_absl//absl/strings", 432 "@com_google_googletest//:gtest_main", 433 ], 434) 435 436cc_test( 437 name = "file_random_access_stream_test", 438 srcs = ["file_random_access_stream_test.cc"], 439 target_compatible_with = select({ 440 "@platforms//os:windows": ["@platforms//:incompatible"], 441 "//conditions:default": [], 442 }), 443 deps = [ 444 ":buffer", 445 ":file_random_access_stream", 446 ":test_matchers", 447 ":test_util", 448 "//internal:test_file_util", 449 "//subtle:random", 450 "@com_google_absl//absl/memory", 451 "@com_google_absl//absl/status", 452 "@com_google_absl//absl/strings", 453 "@com_google_googletest//:gtest_main", 454 ], 455) 456 457cc_test( 458 name = "istream_input_stream_test", 459 srcs = ["istream_input_stream_test.cc"], 460 deps = [ 461 ":istream_input_stream", 462 ":test_util", 463 "//internal:test_file_util", 464 "//subtle:random", 465 "@com_google_absl//absl/memory", 466 "@com_google_absl//absl/status", 467 "@com_google_absl//absl/status:statusor", 468 "@com_google_absl//absl/strings", 469 "@com_google_googletest//:gtest_main", 470 ], 471) 472 473cc_test( 474 name = "ostream_output_stream_test", 475 srcs = ["ostream_output_stream_test.cc"], 476 deps = [ 477 ":ostream_output_stream", 478 ":test_util", 479 "//internal:test_file_util", 480 "//subtle:random", 481 "@com_google_absl//absl/memory", 482 "@com_google_absl//absl/strings", 483 "@com_google_googletest//:gtest_main", 484 ], 485) 486 487cc_test( 488 name = "secret_data_test", 489 srcs = ["secret_data_test.cc"], 490 deps = [ 491 ":secret_data", 492 "@com_google_absl//absl/strings", 493 "@com_google_googletest//:gtest_main", 494 ], 495) 496 497cc_test( 498 name = "secret_proto_test", 499 srcs = ["secret_proto_test.cc"], 500 deps = [ 501 ":secret_proto", 502 "//proto:test_proto_cc_proto", 503 "@com_google_absl//absl/memory", 504 "@com_google_googletest//:gtest_main", 505 "@com_google_protobuf//:protobuf", 506 ], 507) 508 509cc_test( 510 name = "test_util_test", 511 srcs = ["test_util_test.cc"], 512 deps = [ 513 ":buffer", 514 ":ostream_output_stream", 515 ":statusor", 516 ":test_matchers", 517 ":test_util", 518 "//:output_stream", 519 "//:random_access_stream", 520 "//internal:test_random_access_stream", 521 "//proto:aes_gcm_cc_proto", 522 "//proto:tink_cc_proto", 523 "//subtle", 524 "//subtle:test_util", 525 "@com_google_absl//absl/strings", 526 "@com_google_googletest//:gtest_main", 527 ], 528) 529 530cc_test( 531 name = "validation_test", 532 srcs = ["validation_test.cc"], 533 deps = [ 534 ":test_matchers", 535 ":validation", 536 "@com_google_absl//absl/status", 537 "@com_google_googletest//:gtest_main", 538 ], 539) 540 541cc_test( 542 name = "input_stream_util_test", 543 srcs = ["input_stream_util_test.cc"], 544 deps = [ 545 ":input_stream_util", 546 ":istream_input_stream", 547 ":secret_data", 548 ":status", 549 ":test_matchers", 550 "@com_google_absl//absl/memory", 551 "@com_google_googletest//:gtest_main", 552 ], 553) 554 555cc_test( 556 name = "fake_kms_client_test", 557 srcs = ["fake_kms_client_test.cc"], 558 deps = [ 559 ":fake_kms_client", 560 ":status", 561 ":statusor", 562 ":test_matchers", 563 ":test_util", 564 "//aead:aead_config", 565 "//aead:aead_key_templates", 566 "//proto:kms_aead_cc_proto", 567 "//proto:kms_envelope_cc_proto", 568 "@com_google_googletest//:gtest_main", 569 ], 570) 571