// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef ANONYMOUS_TOKENS_CPP_CLIENT_ANONYMOUS_TOKENS_RSA_BSSA_CLIENT_H_ #define ANONYMOUS_TOKENS_CPP_CLIENT_ANONYMOUS_TOKENS_RSA_BSSA_CLIENT_H_ #include <memory> #include <string> #include <vector> #include "absl/container/flat_hash_map.h" #include "absl/status/statusor.h" #include "absl/strings/string_view.h" #include "absl/types/optional.h" #include "anonymous_tokens/cpp/crypto/rsa_blinder.h" #include "anonymous_tokens/proto/anonymous_tokens.pb.h" namespace anonymous_tokens { // This class generates AnonymousTokens RSA blind signatures, // (https://datatracker.ietf.org/doc/draft-irtf-cfrg-rsa-blind-signatures/) // blind message signing request and processes the response. // // Each execution of the Anonymous Tokens RSA blind signatures protocol requires // a new instance of the AnonymousTokensRsaBssaClient. // // This class is not thread-safe. class AnonymousTokensRsaBssaClient { … }; } // namespace anonymous_tokens #endif // ANONYMOUS_TOKENS_CPP_CLIENT_ANONYMOUS_TOKENS_RSA_BSSA_CLIENT_H_