1package(default_visibility = ["//:__subpackages__"]) 2 3licenses(["notice"]) 4 5cc_library( 6 name = "raw_jwt", 7 srcs = ["raw_jwt.cc"], 8 hdrs = ["raw_jwt.h"], 9 include_prefix = "tink/jwt", 10 visibility = ["//visibility:public"], 11 deps = [ 12 "//jwt/internal:json_util", 13 "//util:status", 14 "//util:statusor", 15 "@com_google_absl//absl/status", 16 "@com_google_absl//absl/strings", 17 "@com_google_absl//absl/strings:str_format", 18 "@com_google_absl//absl/time", 19 "@com_google_protobuf//:protobuf", 20 ], 21) 22 23cc_library( 24 name = "verified_jwt", 25 srcs = ["verified_jwt.cc"], 26 hdrs = ["verified_jwt.h"], 27 include_prefix = "tink/jwt", 28 visibility = ["//visibility:public"], 29 deps = [ 30 ":raw_jwt", 31 "//jwt/internal:json_util", 32 "//util:status", 33 "//util:statusor", 34 "@com_google_absl//absl/strings", 35 "@com_google_absl//absl/strings:str_format", 36 "@com_google_absl//absl/time", 37 "@com_google_protobuf//:protobuf", 38 ], 39) 40 41cc_library( 42 name = "jwt_validator", 43 srcs = ["jwt_validator.cc"], 44 hdrs = ["jwt_validator.h"], 45 include_prefix = "tink/jwt", 46 visibility = ["//visibility:public"], 47 deps = [ 48 ":raw_jwt", 49 "//util:status", 50 "//util:statusor", 51 "@com_google_absl//absl/status", 52 "@com_google_absl//absl/strings", 53 "@com_google_absl//absl/time", 54 ], 55) 56 57cc_library( 58 name = "jwt_mac", 59 hdrs = ["jwt_mac.h"], 60 include_prefix = "tink/jwt", 61 visibility = ["//visibility:public"], 62 deps = [ 63 ":jwt_validator", 64 ":raw_jwt", 65 ":verified_jwt", 66 "//util:status", 67 "//util:statusor", 68 "@com_google_absl//absl/strings", 69 ], 70) 71 72cc_library( 73 name = "jwt_public_key_sign", 74 hdrs = ["jwt_public_key_sign.h"], 75 include_prefix = "tink/jwt", 76 visibility = ["//visibility:public"], 77 deps = [ 78 ":raw_jwt", 79 "//util:status", 80 "//util:statusor", 81 "@com_google_absl//absl/strings", 82 ], 83) 84 85cc_library( 86 name = "jwt_public_key_verify", 87 hdrs = ["jwt_public_key_verify.h"], 88 include_prefix = "tink/jwt", 89 visibility = ["//visibility:public"], 90 deps = [ 91 ":jwt_validator", 92 ":verified_jwt", 93 "//util:status", 94 "//util:statusor", 95 "@com_google_absl//absl/strings", 96 ], 97) 98 99cc_library( 100 name = "jwt_mac_config", 101 srcs = ["jwt_mac_config.cc"], 102 hdrs = ["jwt_mac_config.h"], 103 include_prefix = "tink/jwt", 104 visibility = ["//visibility:public"], 105 deps = [ 106 "//:registry", 107 "//config:config_util", 108 "//config:tink_fips", 109 "//jwt/internal:jwt_hmac_key_manager", 110 "//jwt/internal:jwt_mac_wrapper", 111 "//proto:config_cc_proto", 112 "//util:status", 113 "@com_google_absl//absl/base:core_headers", 114 "@com_google_absl//absl/memory", 115 ], 116) 117 118cc_library( 119 name = "jwt_key_templates", 120 srcs = ["jwt_key_templates.cc"], 121 hdrs = ["jwt_key_templates.h"], 122 include_prefix = "tink/jwt", 123 visibility = ["//visibility:public"], 124 deps = [ 125 "//internal:bn_util", 126 "//internal:ssl_unique_ptr", 127 "//proto:common_cc_proto", 128 "//proto:jwt_ecdsa_cc_proto", 129 "//proto:jwt_hmac_cc_proto", 130 "//proto:jwt_rsa_ssa_pkcs1_cc_proto", 131 "//proto:jwt_rsa_ssa_pss_cc_proto", 132 "//proto:tink_cc_proto", 133 "//util:statusor", 134 "@boringssl//:crypto", 135 ], 136) 137 138cc_library( 139 name = "jwk_set_converter", 140 srcs = ["jwk_set_converter.cc"], 141 hdrs = ["jwk_set_converter.h"], 142 include_prefix = "tink/jwt", 143 visibility = ["//visibility:public"], 144 deps = [ 145 ":jwt_public_key_sign", 146 ":raw_jwt", 147 "//:binary_keyset_writer", 148 "//:keyset_handle", 149 "//jwt/internal:json_util", 150 "//jwt/internal:jwt_format", 151 "//proto:common_cc_proto", 152 "//proto:jwt_ecdsa_cc_proto", 153 "//proto:jwt_rsa_ssa_pkcs1_cc_proto", 154 "//proto:jwt_rsa_ssa_pss_cc_proto", 155 "//proto:tink_cc_proto", 156 "//util:keyset_util", 157 "//util:statusor", 158 "@com_google_absl//absl/strings", 159 ], 160) 161 162cc_library( 163 name = "jwt_signature_config", 164 srcs = ["jwt_signature_config.cc"], 165 hdrs = ["jwt_signature_config.h"], 166 include_prefix = "tink/jwt", 167 visibility = ["//visibility:public"], 168 deps = [ 169 "//:registry", 170 "//config:config_util", 171 "//config:tink_fips", 172 "//jwt/internal:jwt_ecdsa_sign_key_manager", 173 "//jwt/internal:jwt_ecdsa_verify_key_manager", 174 "//jwt/internal:jwt_public_key_sign_wrapper", 175 "//jwt/internal:jwt_public_key_verify_wrapper", 176 "//jwt/internal:jwt_rsa_ssa_pkcs1_sign_key_manager", 177 "//jwt/internal:jwt_rsa_ssa_pkcs1_verify_key_manager", 178 "//jwt/internal:jwt_rsa_ssa_pss_sign_key_manager", 179 "//jwt/internal:jwt_rsa_ssa_pss_verify_key_manager", 180 "//proto:config_cc_proto", 181 "//util:status", 182 "@com_google_absl//absl/base:core_headers", 183 "@com_google_absl//absl/memory", 184 ], 185) 186 187# tests 188 189cc_test( 190 name = "raw_jwt_test", 191 size = "small", 192 srcs = ["raw_jwt_test.cc"], 193 deps = [ 194 ":raw_jwt", 195 "//util:test_matchers", 196 "//util:test_util", 197 "@com_google_absl//absl/strings", 198 "@com_google_absl//absl/time", 199 "@com_google_googletest//:gtest_main", 200 ], 201) 202 203cc_test( 204 name = "verified_jwt_test", 205 size = "small", 206 srcs = ["verified_jwt_test.cc"], 207 deps = [ 208 ":jwt_mac", 209 ":jwt_validator", 210 ":raw_jwt", 211 ":verified_jwt", 212 "//jwt/internal:jwt_mac_impl", 213 "//jwt/internal:jwt_mac_internal", 214 "//subtle:hmac_boringssl", 215 "//util:constants", 216 "//util:enums", 217 "//util:errors", 218 "//util:protobuf_helper", 219 "//util:secret_data", 220 "//util:test_matchers", 221 "//util:test_util", 222 "@com_google_absl//absl/status", 223 "@com_google_absl//absl/strings", 224 "@com_google_googletest//:gtest_main", 225 ], 226) 227 228cc_test( 229 name = "jwt_validator_test", 230 size = "small", 231 srcs = ["jwt_validator_test.cc"], 232 deps = [ 233 ":jwt_validator", 234 ":raw_jwt", 235 "//util:test_matchers", 236 "//util:test_util", 237 "@com_google_absl//absl/strings", 238 "@com_google_googletest//:gtest_main", 239 ], 240) 241 242cc_test( 243 name = "jwt_key_templates_test", 244 srcs = ["jwt_key_templates_test.cc"], 245 deps = [ 246 ":jwt_key_templates", 247 ":jwt_mac", 248 ":jwt_mac_config", 249 ":jwt_public_key_sign", 250 ":jwt_public_key_verify", 251 ":jwt_signature_config", 252 ":jwt_validator", 253 ":raw_jwt", 254 ":verified_jwt", 255 "//util:status", 256 "//util:test_matchers", 257 "//util:test_util", 258 "@com_google_googletest//:gtest_main", 259 ], 260) 261 262cc_test( 263 name = "jwk_set_converter_test", 264 srcs = ["jwk_set_converter_test.cc"], 265 deps = [ 266 ":jwk_set_converter", 267 ":jwt_public_key_sign", 268 ":jwt_public_key_verify", 269 ":jwt_signature_config", 270 ":jwt_validator", 271 ":verified_jwt", 272 "//:cleartext_keyset_handle", 273 "//:json_keyset_reader", 274 "//:json_keyset_writer", 275 "//:keyset_handle", 276 "//jwt/internal:json_util", 277 "//proto:jwt_ecdsa_cc_proto", 278 "//proto:jwt_rsa_ssa_pkcs1_cc_proto", 279 "//util:test_matchers", 280 "@com_google_absl//absl/strings", 281 "@com_google_googletest//:gtest_main", 282 "@com_google_protobuf//:protobuf", 283 ], 284) 285