xref: /aosp_15_r20/external/tink/cc/jwt/verified_jwt.cc (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1 // Copyright 2021 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15 ///////////////////////////////////////////////////////////////////////////////
16 
17 #include "tink/jwt/verified_jwt.h"
18 
19 #include <string>
20 #include <vector>
21 
22 #include "absl/strings/numbers.h"
23 #include "absl/strings/str_format.h"
24 #include "absl/strings/substitute.h"
25 #include "tink/jwt/internal/json_util.h"
26 
27 namespace crypto {
28 namespace tink {
29 
30 VerifiedJwt::VerifiedJwt() = default;
31 
VerifiedJwt(const RawJwt & raw_jwt)32 VerifiedJwt::VerifiedJwt(const RawJwt& raw_jwt) {
33   raw_jwt_ = raw_jwt;
34 }
35 
HasTypeHeader() const36 bool VerifiedJwt::HasTypeHeader() const { return raw_jwt_.HasTypeHeader(); }
37 
GetTypeHeader() const38 util::StatusOr<std::string> VerifiedJwt::GetTypeHeader() const {
39   return raw_jwt_.GetTypeHeader();
40 }
41 
HasIssuer() const42 bool VerifiedJwt::HasIssuer() const {
43   return raw_jwt_.HasIssuer();
44 }
45 
GetIssuer() const46 util::StatusOr<std::string> VerifiedJwt::GetIssuer() const {
47   return raw_jwt_.GetIssuer();
48 }
49 
HasSubject() const50 bool VerifiedJwt::HasSubject() const {
51   return raw_jwt_.HasSubject();
52 }
53 
GetSubject() const54 util::StatusOr<std::string> VerifiedJwt::GetSubject() const {
55   return raw_jwt_.GetSubject();
56 }
57 
HasAudiences() const58 bool VerifiedJwt::HasAudiences() const {
59   return raw_jwt_.HasAudiences();
60 }
61 
GetAudiences() const62 util::StatusOr<std::vector<std::string>> VerifiedJwt::GetAudiences() const {
63   return raw_jwt_.GetAudiences();
64 }
65 
HasJwtId() const66 bool VerifiedJwt::HasJwtId() const {
67   return raw_jwt_.HasJwtId();
68 }
69 
GetJwtId() const70 util::StatusOr<std::string> VerifiedJwt::GetJwtId() const {
71   return raw_jwt_.GetJwtId();
72 }
73 
HasExpiration() const74 bool VerifiedJwt::HasExpiration() const {
75   return raw_jwt_.HasExpiration();
76 }
77 
GetExpiration() const78 util::StatusOr<absl::Time> VerifiedJwt::GetExpiration() const {
79   return raw_jwt_.GetExpiration();
80 }
81 
HasNotBefore() const82 bool VerifiedJwt::HasNotBefore() const {
83   return raw_jwt_.HasNotBefore();
84 }
85 
GetNotBefore() const86 util::StatusOr<absl::Time> VerifiedJwt::GetNotBefore() const {
87   return raw_jwt_.GetNotBefore();
88 }
89 
HasIssuedAt() const90 bool VerifiedJwt::HasIssuedAt() const {
91   return raw_jwt_.HasIssuedAt();
92 }
93 
GetIssuedAt() const94 util::StatusOr<absl::Time> VerifiedJwt::GetIssuedAt() const {
95   return raw_jwt_.GetIssuedAt();
96 }
97 
IsNullClaim(absl::string_view name) const98 bool VerifiedJwt::IsNullClaim(absl::string_view name) const {
99   return raw_jwt_.IsNullClaim(name);
100 }
101 
HasBooleanClaim(absl::string_view name) const102 bool VerifiedJwt::HasBooleanClaim(absl::string_view name) const {
103   return raw_jwt_.HasBooleanClaim(name);
104 }
105 
GetBooleanClaim(absl::string_view name) const106 util::StatusOr<bool> VerifiedJwt::GetBooleanClaim(
107     absl::string_view name) const {
108   return raw_jwt_.GetBooleanClaim(name);
109 }
110 
HasStringClaim(absl::string_view name) const111 bool VerifiedJwt::HasStringClaim(absl::string_view name) const {
112   return raw_jwt_.HasStringClaim(name);
113 }
114 
GetStringClaim(absl::string_view name) const115 util::StatusOr<std::string> VerifiedJwt::GetStringClaim(
116     absl::string_view name) const {
117   return raw_jwt_.GetStringClaim(name);
118 }
119 
HasNumberClaim(absl::string_view name) const120 bool VerifiedJwt::HasNumberClaim(absl::string_view name) const {
121   return raw_jwt_.HasNumberClaim(name);
122 }
123 
GetNumberClaim(absl::string_view name) const124 util::StatusOr<double> VerifiedJwt::GetNumberClaim(
125     absl::string_view name) const {
126   return raw_jwt_.GetNumberClaim(name);
127 }
128 
HasJsonObjectClaim(absl::string_view name) const129 bool VerifiedJwt::HasJsonObjectClaim(absl::string_view name) const {
130   return raw_jwt_.HasJsonObjectClaim(name);
131 }
132 
GetJsonObjectClaim(absl::string_view name) const133 util::StatusOr<std::string> VerifiedJwt::GetJsonObjectClaim(
134     absl::string_view name) const {
135   return raw_jwt_.GetJsonObjectClaim(name);
136 }
137 
HasJsonArrayClaim(absl::string_view name) const138 bool VerifiedJwt::HasJsonArrayClaim(absl::string_view name) const {
139   return raw_jwt_.HasJsonArrayClaim(name);
140 }
141 
GetJsonArrayClaim(absl::string_view name) const142 util::StatusOr<std::string> VerifiedJwt::GetJsonArrayClaim(
143     absl::string_view name) const {
144   return raw_jwt_.GetJsonArrayClaim(name);
145 }
146 
CustomClaimNames() const147 std::vector<std::string> VerifiedJwt::CustomClaimNames() const {
148   return raw_jwt_.CustomClaimNames();
149 }
150 
GetJsonPayload()151 util::StatusOr<std::string> VerifiedJwt::GetJsonPayload() {
152   return raw_jwt_.GetJsonPayload();
153 }
154 
155 }  // namespace tink
156 }  // namespace crypto
157