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)32VerifiedJwt::VerifiedJwt(const RawJwt& raw_jwt) { 33 raw_jwt_ = raw_jwt; 34 } 35 HasTypeHeader() const36bool VerifiedJwt::HasTypeHeader() const { return raw_jwt_.HasTypeHeader(); } 37 GetTypeHeader() const38util::StatusOr<std::string> VerifiedJwt::GetTypeHeader() const { 39 return raw_jwt_.GetTypeHeader(); 40 } 41 HasIssuer() const42bool VerifiedJwt::HasIssuer() const { 43 return raw_jwt_.HasIssuer(); 44 } 45 GetIssuer() const46util::StatusOr<std::string> VerifiedJwt::GetIssuer() const { 47 return raw_jwt_.GetIssuer(); 48 } 49 HasSubject() const50bool VerifiedJwt::HasSubject() const { 51 return raw_jwt_.HasSubject(); 52 } 53 GetSubject() const54util::StatusOr<std::string> VerifiedJwt::GetSubject() const { 55 return raw_jwt_.GetSubject(); 56 } 57 HasAudiences() const58bool VerifiedJwt::HasAudiences() const { 59 return raw_jwt_.HasAudiences(); 60 } 61 GetAudiences() const62util::StatusOr<std::vector<std::string>> VerifiedJwt::GetAudiences() const { 63 return raw_jwt_.GetAudiences(); 64 } 65 HasJwtId() const66bool VerifiedJwt::HasJwtId() const { 67 return raw_jwt_.HasJwtId(); 68 } 69 GetJwtId() const70util::StatusOr<std::string> VerifiedJwt::GetJwtId() const { 71 return raw_jwt_.GetJwtId(); 72 } 73 HasExpiration() const74bool VerifiedJwt::HasExpiration() const { 75 return raw_jwt_.HasExpiration(); 76 } 77 GetExpiration() const78util::StatusOr<absl::Time> VerifiedJwt::GetExpiration() const { 79 return raw_jwt_.GetExpiration(); 80 } 81 HasNotBefore() const82bool VerifiedJwt::HasNotBefore() const { 83 return raw_jwt_.HasNotBefore(); 84 } 85 GetNotBefore() const86util::StatusOr<absl::Time> VerifiedJwt::GetNotBefore() const { 87 return raw_jwt_.GetNotBefore(); 88 } 89 HasIssuedAt() const90bool VerifiedJwt::HasIssuedAt() const { 91 return raw_jwt_.HasIssuedAt(); 92 } 93 GetIssuedAt() const94util::StatusOr<absl::Time> VerifiedJwt::GetIssuedAt() const { 95 return raw_jwt_.GetIssuedAt(); 96 } 97 IsNullClaim(absl::string_view name) const98bool VerifiedJwt::IsNullClaim(absl::string_view name) const { 99 return raw_jwt_.IsNullClaim(name); 100 } 101 HasBooleanClaim(absl::string_view name) const102bool VerifiedJwt::HasBooleanClaim(absl::string_view name) const { 103 return raw_jwt_.HasBooleanClaim(name); 104 } 105 GetBooleanClaim(absl::string_view name) const106util::StatusOr<bool> VerifiedJwt::GetBooleanClaim( 107 absl::string_view name) const { 108 return raw_jwt_.GetBooleanClaim(name); 109 } 110 HasStringClaim(absl::string_view name) const111bool VerifiedJwt::HasStringClaim(absl::string_view name) const { 112 return raw_jwt_.HasStringClaim(name); 113 } 114 GetStringClaim(absl::string_view name) const115util::StatusOr<std::string> VerifiedJwt::GetStringClaim( 116 absl::string_view name) const { 117 return raw_jwt_.GetStringClaim(name); 118 } 119 HasNumberClaim(absl::string_view name) const120bool VerifiedJwt::HasNumberClaim(absl::string_view name) const { 121 return raw_jwt_.HasNumberClaim(name); 122 } 123 GetNumberClaim(absl::string_view name) const124util::StatusOr<double> VerifiedJwt::GetNumberClaim( 125 absl::string_view name) const { 126 return raw_jwt_.GetNumberClaim(name); 127 } 128 HasJsonObjectClaim(absl::string_view name) const129bool VerifiedJwt::HasJsonObjectClaim(absl::string_view name) const { 130 return raw_jwt_.HasJsonObjectClaim(name); 131 } 132 GetJsonObjectClaim(absl::string_view name) const133util::StatusOr<std::string> VerifiedJwt::GetJsonObjectClaim( 134 absl::string_view name) const { 135 return raw_jwt_.GetJsonObjectClaim(name); 136 } 137 HasJsonArrayClaim(absl::string_view name) const138bool VerifiedJwt::HasJsonArrayClaim(absl::string_view name) const { 139 return raw_jwt_.HasJsonArrayClaim(name); 140 } 141 GetJsonArrayClaim(absl::string_view name) const142util::StatusOr<std::string> VerifiedJwt::GetJsonArrayClaim( 143 absl::string_view name) const { 144 return raw_jwt_.GetJsonArrayClaim(name); 145 } 146 CustomClaimNames() const147std::vector<std::string> VerifiedJwt::CustomClaimNames() const { 148 return raw_jwt_.CustomClaimNames(); 149 } 150 GetJsonPayload()151util::StatusOr<std::string> VerifiedJwt::GetJsonPayload() { 152 return raw_jwt_.GetJsonPayload(); 153 } 154 155 } // namespace tink 156 } // namespace crypto 157