1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "device/fido/response_data.h"
6 
7 #include <utility>
8 
9 #include "base/base64url.h"
10 #include "base/strings/string_piece.h"
11 #include "device/fido/fido_parsing_utils.h"
12 
13 namespace device {
14 
15 ResponseData::~ResponseData() = default;
16 
17 ResponseData::ResponseData() = default;
18 
ResponseData(std::vector<uint8_t> raw_credential_id)19 ResponseData::ResponseData(std::vector<uint8_t> raw_credential_id)
20     : raw_credential_id_(std::move(raw_credential_id)) {}
21 
22 ResponseData::ResponseData(ResponseData&& other) = default;
23 
24 ResponseData& ResponseData::operator=(ResponseData&& other) = default;
25 
GetId() const26 std::string ResponseData::GetId() const {
27   std::string id;
28   base::Base64UrlEncode(base::StringPiece(reinterpret_cast<const char*>(
29                                               raw_credential_id_.data()),
30                                           raw_credential_id_.size()),
31                         base::Base64UrlEncodePolicy::OMIT_PADDING, &id);
32   return id;
33 }
34 
35 }  // namespace device
36