OSDN Git Service

GD Security OobData
authorMartin Brabham <optedoblivion@google.com>
Mon, 16 Nov 2020 18:39:50 +0000 (10:39 -0800)
committerMartin Brabham <optedoblivion@google.com>
Mon, 16 Nov 2020 18:40:29 +0000 (10:40 -0800)
Create an object to represent OobData in the Security Module.

Bug: 162984360
Tag: #gd-refactor
Test: cert/run --host SecurityTest
Change-Id: I3bf5645bc15bfcd90180d5f4fbd7c41b6c120add

gd/security/pairing/oob_data.h [new file with mode: 0644]

diff --git a/gd/security/pairing/oob_data.h b/gd/security/pairing/oob_data.h
new file mode 100644 (file)
index 0000000..79430a2
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ *
+ *  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