// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/proximity_auth/base64url.h" #include "base/base64.h" #include "base/strings/string_util.h" namespace proximity_auth { void Base64UrlEncode(const std::string& decoded_input, std::string* encoded_output) { base::Base64Encode(decoded_input, encoded_output); base::ReplaceChars(*encoded_output, "+", "-", encoded_output); base::ReplaceChars(*encoded_output, "/", "_", encoded_output); } bool Base64UrlDecode(const std::string& encoded_input, std::string* decoded_output) { std::string adjusted_encoded_input = encoded_input; base::ReplaceChars(adjusted_encoded_input, "-", "+", &adjusted_encoded_input); base::ReplaceChars(adjusted_encoded_input, "_", "/", &adjusted_encoded_input); return base::Base64Decode(adjusted_encoded_input, decoded_output); } } // namespace proximity_auth