Skip to content

Commit

Permalink
Print certificate suffix in debug message
Browse files Browse the repository at this point in the history
  • Loading branch information
molotkov-and committed Jun 18, 2024
1 parent 69a5fca commit 146d864
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 25 deletions.
2 changes: 1 addition & 1 deletion ydb/core/security/ticket_parser_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ class TTicketParserImpl : public TActorBootstrapped<TDerived> {
return MaskTicket(Signature.AccessKeyId);
}
if (TokenType == TDerived::ETokenType::Certificate) {
return MaskCertificate(Ticket);
return PrintCertificateSuffix(Ticket);
}
return MaskTicket(Ticket);
}
Expand Down
38 changes: 16 additions & 22 deletions ydb/library/security/util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,45 +7,39 @@

namespace NKikimr {

namespace {
TString MaskString(TStringBuf str) {
TString MaskTicket(TStringBuf token) {
TStringBuilder mask;
if (str.size() >= 16) {
mask << str.substr(0, 4);
if (token.size() >= 16) {
mask << token.substr(0, 4);
mask << "****";
mask << str.substr(str.size() - 4, 4);
mask << token.substr(token.size() - 4, 4);
} else {
mask << "****";
}
mask << " (";
mask << Sprintf("%08X", Crc32c(str.data(), str.size()));
mask << Sprintf("%08X", Crc32c(token.data(), token.size()));
mask << ")";
return mask;
}
}

TString MaskTicket(TStringBuf token) {
return MaskString(token);
}

TString MaskTicket(const TString& token) {
return MaskTicket(TStringBuf(token));
}

TString MaskCertificate(TStringBuf certificate) {
size_t beginCertificateContent = 0;
if (size_t pos = certificate.find('\n'); pos != TStringBuf::npos) {
beginCertificateContent = pos + 1;
}
size_t endCertificateContent = beginCertificateContent;
if (size_t pos = certificate.rfind("\n-----END"); pos != TStringBuf::npos) {
endCertificateContent = pos;
TString PrintCertificateSuffix(TStringBuf certificate) {
size_t endPos = certificate.rfind("\n-----END");
if (endPos != TStringBuf::npos && endPos > 0) {
size_t startPos = certificate.rfind("\n", endPos - 1);
if (startPos != TStringBuf::npos) {
size_t len = std::min(endPos - startPos - 1, 16UL);
return TString(certificate.substr(endPos - len, len));
}
}
return MaskString(certificate.substr(beginCertificateContent, endCertificateContent - beginCertificateContent));
return "certificate";
}

TString MaskCertificate(const TString& token) {
return MaskCertificate(TStringBuf(token));
TString PrintCertificateSuffix(const TString& certificate) {
return PrintCertificateSuffix(TStringBuf(certificate));
}

} // namespace NKikimr
4 changes: 2 additions & 2 deletions ydb/library/security/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ namespace NKikimr {
TString MaskTicket(TStringBuf token);
TString MaskTicket(const TString& token);

TString MaskCertificate(const TString& certificate);
TString MaskCertificate(TStringBuf certificate);
TString PrintCertificateSuffix(const TString& certificate);
TString PrintCertificateSuffix(TStringBuf certificate);

// copy-pasted from <robot/library/utils/time_convert.h>
template<typename Rep, typename Period>
Expand Down

0 comments on commit 146d864

Please sign in to comment.