aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/tvmauth/src/parser.cpp
diff options
context:
space:
mode:
authoralexnick <alexnick@yandex-team.ru>2022-02-17 14:23:34 +0300
committeralexnick <alexnick@yandex-team.ru>2022-02-17 14:23:34 +0300
commitfd03a905d0671edeffde43ade486dc608bf69d95 (patch)
treed01659ada27349df9be25f8a8d5dab4f9ec4cd12 /library/cpp/tvmauth/src/parser.cpp
parent3dba88133a0e2bf63394fdba2affc51a771eff03 (diff)
downloadydb-fd03a905d0671edeffde43ade486dc608bf69d95.tar.gz
remove tvm dependecy KIKIMR-14386
ref:d40a6e54d3da55ed1f9c9a0763552940acb0988b
Diffstat (limited to 'library/cpp/tvmauth/src/parser.cpp')
-rw-r--r--library/cpp/tvmauth/src/parser.cpp97
1 files changed, 0 insertions, 97 deletions
diff --git a/library/cpp/tvmauth/src/parser.cpp b/library/cpp/tvmauth/src/parser.cpp
deleted file mode 100644
index 358de58d365..00000000000
--- a/library/cpp/tvmauth/src/parser.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "parser.h"
-
-#include "utils.h"
-
-#include <library/cpp/tvmauth/exception.h>
-
-#include <util/generic/strbuf.h>
-#include <util/string/split.h>
-
-#include <ctime>
-
-namespace NTvmAuth {
- TString TParserTvmKeys::ParseStrV1(TStringBuf str) {
- while (str && str.back() == '\n') {
- str.Chop(1);
- }
-
- TStringBuf ver = str.NextTok(DELIM);
- if (!str || !ver || ver != "1") {
- throw TMalformedTvmKeysException() << "Malformed TVM keys";
- }
- TString res = NUtils::Base64url2bin(str);
- if (res.empty()) {
- throw TMalformedTvmKeysException() << "Malformed TVM keys";
- }
- return res;
- }
-
- TStringBuf TParserTickets::UserFlag() {
- static const char BUF_[] = "user";
- return TStringBuf(BUF_, sizeof(BUF_) - 1);
- }
-
- TStringBuf TParserTickets::ServiceFlag() {
- static const char BUF_[] = "serv";
- return TStringBuf(BUF_, sizeof(BUF_) - 1);
- }
-
- TParserTickets::TRes TParserTickets::ParseV3(TStringBuf body, const NRw::TPublicKeys& keys, TStringBuf type) {
- TStrRes str = ParseStrV3(body, type);
- TRes res(str.Status);
- if (str.Status != ETicketStatus::Ok) {
- return TRes(str.Status);
- }
- if (!res.Ticket.ParseFromString(str.Proto)) {
- res.Status = ETicketStatus::Malformed;
- return res;
- }
- if (res.Ticket.expirationtime() <= time(nullptr)) {
- res.Status = ETicketStatus::Expired;
- return res;
- }
-
- auto itKey = keys.find(res.Ticket.keyid());
- if (itKey == keys.end()) {
- res.Status = ETicketStatus::MissingKey;
- return res;
- }
- if (!itKey->second.CheckSign(str.ForCheck, str.Sign)) {
- res.Status = ETicketStatus::SignBroken;
- return res;
- }
- return res;
- }
-
- TParserTickets::TStrRes TParserTickets::ParseStrV3(TStringBuf body, TStringBuf type) {
- TStringBuf forCheck = body;
- TStringBuf version = body.NextTok(DELIM);
- if (!body || version.size() != 1) {
- return {ETicketStatus::Malformed, {}, {}, {}};
- }
- if (version != "3") {
- return {ETicketStatus::UnsupportedVersion, {}, {}, {}};
- }
-
- TStringBuf ticketType = body.NextTok(DELIM);
- if (ticketType != type) {
- return {ETicketStatus::InvalidTicketType, {}, {}, {}};
- }
-
- TStringBuf proto = body.NextTok(DELIM);
- TStringBuf sign = body.NextTok(DELIM);
-
- if (!proto || !sign || body.size() > 0) {
- return {ETicketStatus::Malformed, {}, {}, {}};
- }
-
- TString protoBin = NUtils::Base64url2bin(proto);
- TString signBin = NUtils::Base64url2bin(sign);
-
- if (!protoBin || !signBin) {
- return {ETicketStatus::Malformed, {}, {}, {}};
- }
-
- return {ETicketStatus::Ok, std::move(protoBin), std::move(signBin), forCheck.Chop(sign.size())};
- }
-}