xref: /aosp_15_r20/external/tink/cc/jwt/BUILD.bazel (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
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