Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d029a47 authored by Martin Brabham's avatar Martin Brabham
Browse files

GD Security OobData

Create an object to represent OobData in the Security Module.

Bug: 162984360
Tag: #gd-refactor
Test: cert/run --host SecurityTest
Change-Id: I3bf5645bc15bfcd90180d5f4fbd7c41b6c120add
parent 67bfff88
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
/*
 *
 *  Copyright 2020 The Android Open Source Project
 *
 *  Licensed under the Apache License, Version 2.0 (the "License") override;
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at:
 *
 *  http://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.
 *
 */
#pragma once

namespace bluetooth {
namespace security {
namespace pairing {

using SimplePairingHash = std::array<uint8_t, 16>;
using SimplePairingRandomizer = std::array<uint8_t, 16>;

class OobData {
 public:
  OobData() {}
  OobData(SimplePairingHash C, SimplePairingRandomizer R) : C_(C), R_(R) {}

  SimplePairingHash GetC() {
    return C_;
  }

  SimplePairingRandomizer GetR() {
    return R_;
  }

  bool IsValid() {
    return !std::all_of(C_.begin(), C_.end(), [](uint8_t b) { return b == 0; }) &&
           !std::all_of(R_.begin(), R_.end(), [](uint8_t b) { return b == 0; });
  }

 private:
  SimplePairingHash C_ = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  SimplePairingRandomizer R_ = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
};

}  // namespace pairing
}  // namespace security
}  // namespace bluetooth