1package(default_visibility = ["//:__subpackages__"]) 2 3licenses(["notice"]) 4 5cc_library( 6 name = "mac_wrapper", 7 srcs = ["mac_wrapper.cc"], 8 hdrs = ["mac_wrapper.h"], 9 include_prefix = "tink/mac", 10 deps = [ 11 "//:crypto_format", 12 "//:mac", 13 "//:primitive_set", 14 "//:primitive_wrapper", 15 "//internal:monitoring_util", 16 "//internal:registry_impl", 17 "//internal:util", 18 "//monitoring", 19 "//proto:tink_cc_proto", 20 "//util:status", 21 "//util:statusor", 22 "@com_google_absl//absl/status", 23 "@com_google_absl//absl/strings", 24 ], 25) 26 27cc_library( 28 name = "mac_config", 29 srcs = ["mac_config.cc"], 30 hdrs = ["mac_config.h"], 31 include_prefix = "tink/mac", 32 visibility = ["//visibility:public"], 33 deps = [ 34 ":aes_cmac_key_manager", 35 ":aes_cmac_proto_serialization", 36 ":hmac_key_manager", 37 ":hmac_proto_serialization", 38 ":mac_wrapper", 39 "//:registry", 40 "//config:config_util", 41 "//config:tink_fips", 42 "//mac/internal:chunked_mac_wrapper", 43 "//proto:config_cc_proto", 44 "//util:status", 45 "@com_google_absl//absl/base:core_headers", 46 "@com_google_absl//absl/memory", 47 ], 48) 49 50cc_library( 51 name = "mac_factory", 52 srcs = ["mac_factory.cc"], 53 hdrs = ["mac_factory.h"], 54 include_prefix = "tink/mac", 55 deps = [ 56 ":mac_wrapper", 57 "//:key_manager", 58 "//:keyset_handle", 59 "//:mac", 60 "//:registry", 61 "//util:status", 62 "//util:statusor", 63 "@com_google_absl//absl/base:core_headers", 64 ], 65) 66 67cc_library( 68 name = "mac_key_templates", 69 srcs = ["mac_key_templates.cc"], 70 hdrs = ["mac_key_templates.h"], 71 include_prefix = "tink/mac", 72 visibility = ["//visibility:public"], 73 deps = [ 74 "//proto:aes_cmac_cc_proto", 75 "//proto:common_cc_proto", 76 "//proto:hmac_cc_proto", 77 "//proto:tink_cc_proto", 78 ], 79) 80 81cc_library( 82 name = "aes_cmac_key_manager", 83 hdrs = ["aes_cmac_key_manager.h"], 84 include_prefix = "tink/mac", 85 deps = [ 86 "//:chunked_mac", 87 "//:core/key_type_manager", 88 "//:key_manager", 89 "//:mac", 90 "//mac/internal:chunked_mac_impl", 91 "//proto:aes_cmac_cc_proto", 92 "//proto:tink_cc_proto", 93 "//subtle:aes_cmac_boringssl", 94 "//subtle:random", 95 "//util:constants", 96 "//util:errors", 97 "//util:protobuf_helper", 98 "//util:secret_data", 99 "//util:status", 100 "//util:statusor", 101 "//util:validation", 102 "@com_google_absl//absl/memory", 103 "@com_google_absl//absl/status", 104 "@com_google_absl//absl/strings", 105 ], 106) 107 108cc_library( 109 name = "hmac_key_manager", 110 srcs = ["hmac_key_manager.cc"], 111 hdrs = ["hmac_key_manager.h"], 112 include_prefix = "tink/mac", 113 deps = [ 114 "//:chunked_mac", 115 "//:core/key_type_manager", 116 "//:mac", 117 "//mac/internal:chunked_mac_impl", 118 "//proto:common_cc_proto", 119 "//proto:hmac_cc_proto", 120 "//proto:tink_cc_proto", 121 "//subtle:hmac_boringssl", 122 "//subtle:random", 123 "//util:constants", 124 "//util:enums", 125 "//util:errors", 126 "//util:input_stream_util", 127 "//util:protobuf_helper", 128 "//util:secret_data", 129 "//util:status", 130 "//util:statusor", 131 "//util:validation", 132 "@com_google_absl//absl/memory", 133 "@com_google_absl//absl/status", 134 "@com_google_absl//absl/strings", 135 ], 136) 137 138cc_library( 139 name = "mac_parameters", 140 hdrs = ["mac_parameters.h"], 141 include_prefix = "tink/mac", 142 deps = ["//:parameters"], 143) 144 145cc_library( 146 name = "mac_key", 147 hdrs = ["mac_key.h"], 148 include_prefix = "tink/mac", 149 deps = [ 150 ":mac_parameters", 151 "//:key", 152 "//util:statusor", 153 ], 154) 155 156cc_library( 157 name = "failing_mac", 158 testonly = 1, 159 srcs = ["failing_mac.cc"], 160 hdrs = ["failing_mac.h"], 161 include_prefix = "tink/mac", 162 visibility = ["//visibility:public"], 163 deps = [ 164 "//:mac", 165 "@com_google_absl//absl/strings", 166 ], 167) 168 169cc_library( 170 name = "aes_cmac_parameters", 171 srcs = ["aes_cmac_parameters.cc"], 172 hdrs = ["aes_cmac_parameters.h"], 173 include_prefix = "tink/mac", 174 deps = [ 175 ":mac_parameters", 176 "//:crypto_format", 177 "//internal:util", 178 "//util:status", 179 "//util:statusor", 180 "@com_google_absl//absl/log", 181 ], 182) 183 184cc_library( 185 name = "aes_cmac_key", 186 srcs = ["aes_cmac_key.cc"], 187 hdrs = ["aes_cmac_key.h"], 188 include_prefix = "tink/mac", 189 deps = [ 190 ":aes_cmac_parameters", 191 ":mac_key", 192 "//:partial_key_access_token", 193 "//:restricted_data", 194 "//subtle:subtle_util", 195 "//util:status", 196 "//util:statusor", 197 "@boringssl//:crypto", 198 "@com_google_absl//absl/base:core_headers", 199 "@com_google_absl//absl/strings", 200 "@com_google_absl//absl/strings:str_format", 201 "@com_google_absl//absl/types:optional", 202 ], 203) 204 205cc_library( 206 name = "aes_cmac_proto_serialization", 207 srcs = ["aes_cmac_proto_serialization.cc"], 208 hdrs = ["aes_cmac_proto_serialization.h"], 209 include_prefix = "tink/mac", 210 deps = [ 211 ":aes_cmac_key", 212 ":aes_cmac_parameters", 213 "//:partial_key_access", 214 "//:restricted_data", 215 "//:secret_key_access_token", 216 "//internal:key_parser", 217 "//internal:key_serializer", 218 "//internal:mutable_serialization_registry", 219 "//internal:parameters_parser", 220 "//internal:parameters_serializer", 221 "//internal:proto_key_serialization", 222 "//internal:proto_parameters_serialization", 223 "//proto:aes_cmac_cc_proto", 224 "//proto:tink_cc_proto", 225 "//util:status", 226 "//util:statusor", 227 "@com_google_absl//absl/status", 228 "@com_google_absl//absl/types:optional", 229 ], 230) 231 232cc_library( 233 name = "hmac_parameters", 234 srcs = ["hmac_parameters.cc"], 235 hdrs = ["hmac_parameters.h"], 236 include_prefix = "tink/mac", 237 deps = [ 238 ":mac_parameters", 239 "//:crypto_format", 240 "//internal:util", 241 "//util:status", 242 "//util:statusor", 243 "@com_google_absl//absl/log", 244 ], 245) 246 247cc_library( 248 name = "hmac_key", 249 srcs = ["hmac_key.cc"], 250 hdrs = ["hmac_key.h"], 251 include_prefix = "tink/mac", 252 deps = [ 253 ":hmac_parameters", 254 ":mac_key", 255 "//:partial_key_access_token", 256 "//:restricted_data", 257 "//subtle:subtle_util", 258 "//util:status", 259 "//util:statusor", 260 "@com_google_absl//absl/base:core_headers", 261 "@com_google_absl//absl/strings", 262 "@com_google_absl//absl/strings:str_format", 263 "@com_google_absl//absl/types:optional", 264 ], 265) 266 267cc_library( 268 name = "hmac_proto_serialization", 269 srcs = ["hmac_proto_serialization.cc"], 270 hdrs = ["hmac_proto_serialization.h"], 271 include_prefix = "tink/mac", 272 deps = [ 273 ":hmac_key", 274 ":hmac_parameters", 275 "//:partial_key_access", 276 "//:restricted_data", 277 "//:secret_key_access_token", 278 "//internal:key_parser", 279 "//internal:key_serializer", 280 "//internal:mutable_serialization_registry", 281 "//internal:parameters_parser", 282 "//internal:parameters_serializer", 283 "//internal:proto_key_serialization", 284 "//internal:proto_parameters_serialization", 285 "//proto:common_cc_proto", 286 "//proto:hmac_cc_proto", 287 "//proto:tink_cc_proto", 288 "//util:status", 289 "//util:statusor", 290 "@com_google_absl//absl/status", 291 "@com_google_absl//absl/types:optional", 292 ], 293) 294 295# tests 296 297cc_test( 298 name = "mac_wrapper_test", 299 size = "small", 300 srcs = ["mac_wrapper_test.cc"], 301 deps = [ 302 ":failing_mac", 303 ":mac_wrapper", 304 "//:crypto_format", 305 "//:mac", 306 "//:primitive_set", 307 "//internal:registry_impl", 308 "//monitoring", 309 "//monitoring:monitoring_client_mocks", 310 "//proto:tink_cc_proto", 311 "//util:status", 312 "//util:test_matchers", 313 "//util:test_util", 314 "@com_google_absl//absl/strings", 315 "@com_google_googletest//:gtest_main", 316 ], 317) 318 319cc_test( 320 name = "mac_config_test", 321 size = "small", 322 srcs = ["mac_config_test.cc"], 323 tags = ["fips"], 324 deps = [ 325 ":aes_cmac_key", 326 ":aes_cmac_key_manager", 327 ":aes_cmac_parameters", 328 ":hmac_key", 329 ":hmac_key_manager", 330 ":hmac_parameters", 331 ":mac_config", 332 ":mac_key_templates", 333 "//:chunked_mac", 334 "//:insecure_secret_key_access", 335 "//:keyset_handle", 336 "//:mac", 337 "//:partial_key_access", 338 "//:registry", 339 "//internal:fips_utils", 340 "//internal:mutable_serialization_registry", 341 "//internal:proto_key_serialization", 342 "//internal:proto_parameters_serialization", 343 "//proto:common_cc_proto", 344 "//proto:tink_cc_proto", 345 "//util:status", 346 "//util:test_matchers", 347 "//util:test_util", 348 "@boringssl//:crypto", 349 "@com_google_absl//absl/status", 350 "@com_google_googletest//:gtest_main", 351 ], 352) 353 354cc_test( 355 name = "mac_factory_test", 356 size = "small", 357 srcs = ["mac_factory_test.cc"], 358 deps = [ 359 ":hmac_key_manager", 360 ":mac_config", 361 ":mac_factory", 362 "//:crypto_format", 363 "//:keyset_handle", 364 "//:mac", 365 "//internal:key_info", 366 "//proto:common_cc_proto", 367 "//proto:hmac_cc_proto", 368 "//proto:tink_cc_proto", 369 "//util:status", 370 "//util:test_keyset_handle", 371 "//util:test_util", 372 "@com_google_googletest//:gtest_main", 373 ], 374) 375 376cc_test( 377 name = "mac_key_templates_test", 378 size = "small", 379 srcs = ["mac_key_templates_test.cc"], 380 deps = [ 381 ":aes_cmac_key_manager", 382 ":hmac_key_manager", 383 ":mac_key_templates", 384 "//:core/key_manager_impl", 385 "//proto:aes_cmac_cc_proto", 386 "//proto:common_cc_proto", 387 "//proto:hmac_cc_proto", 388 "//proto:tink_cc_proto", 389 "//util:test_matchers", 390 "@com_google_googletest//:gtest_main", 391 ], 392) 393 394cc_test( 395 name = "aes_cmac_key_manager_test", 396 size = "small", 397 srcs = ["aes_cmac_key_manager_test.cc"], 398 deps = [ 399 ":aes_cmac_key_manager", 400 "//:chunked_mac", 401 "//:mac", 402 "//proto:aes_cmac_cc_proto", 403 "//util:status", 404 "//util:statusor", 405 "//util:test_matchers", 406 "@com_google_googletest//:gtest_main", 407 ], 408) 409 410cc_test( 411 name = "hmac_key_manager_test", 412 size = "small", 413 srcs = ["hmac_key_manager_test.cc"], 414 deps = [ 415 ":hmac_key_manager", 416 "//:chunked_mac", 417 "//:core/key_manager_impl", 418 "//:mac", 419 "//proto:hmac_cc_proto", 420 "//util:istream_input_stream", 421 "//util:secret_data", 422 "//util:status", 423 "//util:statusor", 424 "//util:test_matchers", 425 "@com_google_absl//absl/status", 426 "@com_google_googletest//:gtest_main", 427 ], 428) 429 430cc_test( 431 name = "failing_mac_test", 432 srcs = ["failing_mac_test.cc"], 433 deps = [ 434 ":failing_mac", 435 "//util:test_matchers", 436 "@com_google_absl//absl/status", 437 "@com_google_googletest//:gtest_main", 438 ], 439) 440 441cc_test( 442 name = "aes_cmac_parameters_test", 443 size = "small", 444 srcs = ["aes_cmac_parameters_test.cc"], 445 deps = [ 446 ":aes_cmac_parameters", 447 "//util:statusor", 448 "//util:test_matchers", 449 "@com_google_googletest//:gtest_main", 450 ], 451) 452 453cc_test( 454 name = "aes_cmac_key_test", 455 size = "small", 456 srcs = ["aes_cmac_key_test.cc"], 457 deps = [ 458 ":aes_cmac_key", 459 ":aes_cmac_parameters", 460 "//:partial_key_access", 461 "//:restricted_data", 462 "//util:statusor", 463 "//util:test_matchers", 464 "@com_google_absl//absl/types:optional", 465 "@com_google_googletest//:gtest_main", 466 ], 467) 468 469cc_test( 470 name = "aes_cmac_proto_serialization_test", 471 size = "small", 472 srcs = ["aes_cmac_proto_serialization_test.cc"], 473 deps = [ 474 ":aes_cmac_key", 475 ":aes_cmac_parameters", 476 ":aes_cmac_proto_serialization", 477 "//:insecure_secret_key_access", 478 "//:partial_key_access", 479 "//:restricted_data", 480 "//internal:mutable_serialization_registry", 481 "//internal:proto_key_serialization", 482 "//internal:proto_parameters_serialization", 483 "//proto:aes_cmac_cc_proto", 484 "//proto:tink_cc_proto", 485 "//subtle:random", 486 "//util:test_matchers", 487 "@com_google_googletest//:gtest_main", 488 ], 489) 490 491cc_test( 492 name = "hmac_parameters_test", 493 size = "small", 494 srcs = ["hmac_parameters_test.cc"], 495 deps = [ 496 ":hmac_parameters", 497 "//util:statusor", 498 "//util:test_matchers", 499 "@com_google_googletest//:gtest_main", 500 ], 501) 502 503cc_test( 504 name = "hmac_key_test", 505 srcs = ["hmac_key_test.cc"], 506 deps = [ 507 ":hmac_key", 508 ":hmac_parameters", 509 "//:partial_key_access", 510 "//:restricted_data", 511 "//util:statusor", 512 "//util:test_matchers", 513 "@com_google_absl//absl/types:optional", 514 "@com_google_googletest//:gtest_main", 515 ], 516) 517 518cc_test( 519 name = "hmac_proto_serialization_test", 520 srcs = ["hmac_proto_serialization_test.cc"], 521 deps = [ 522 ":hmac_key", 523 ":hmac_parameters", 524 ":hmac_proto_serialization", 525 "//:insecure_secret_key_access", 526 "//:partial_key_access", 527 "//:restricted_data", 528 "//internal:mutable_serialization_registry", 529 "//internal:proto_key_serialization", 530 "//internal:proto_parameters_serialization", 531 "//proto:common_cc_proto", 532 "//proto:hmac_cc_proto", 533 "//proto:tink_cc_proto", 534 "//subtle:random", 535 "//util:test_matchers", 536 "@com_google_googletest//:gtest_main", 537 ], 538) 539