Index: device/u2f/u2f_sign.h |
diff --git a/device/u2f/u2f_sign.h b/device/u2f/u2f_sign.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e924137f81324e3a4d4ba05eafa602152379eac0 |
--- /dev/null |
+++ b/device/u2f/u2f_sign.h |
@@ -0,0 +1,51 @@ |
+// Copyright 2017 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. |
+ |
+#ifndef DEVICE_U2F_U2F_SIGN_H_ |
+#define DEVICE_U2F_U2F_SIGN_H_ |
+ |
+#include <vector> |
+ |
+#include "u2f_request.h" |
+ |
+namespace device { |
+ |
+class U2fSign : public U2fRequest { |
+ public: |
+ U2fSign(const std::vector<std::vector<uint8_t>>& registered_keys, |
+ const std::vector<uint8_t>& challenge_hash, |
+ const std::vector<uint8_t>& app_param, |
+ const ResponseCallback& cb); |
+ ~U2fSign() override; |
+ |
+ static std::unique_ptr<U2fRequest> TrySign( |
+ const std::vector<std::vector<uint8_t>>& registered_keys, |
+ const std::vector<uint8_t>& challenge_hash, |
+ const std::vector<uint8_t>& app_param, |
+ const ResponseCallback& cb); |
+ |
+ private: |
+ void TryDevice() override; |
+ void OnTryDevice(std::vector<std::vector<uint8_t>>::const_iterator, |
+ U2fReturnCode, |
+ std::vector<uint8_t>); |
+ |
+ const std::vector<std::vector<uint8_t>> registered_keys_; |
+ std::vector<uint8_t> challenge_hash_; |
+ std::vector<uint8_t> app_param_; |
+ const std::vector<uint8_t> kBogusAppParam = { |
+ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, |
+ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, |
+ 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41}; |
+ const std::vector<uint8_t> kBogusChallenge = { |
+ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, |
+ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, |
+ 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42}; |
+ |
+ base::WeakPtrFactory<U2fSign> weak_factory_; |
+}; |
+ |
+} // namespace device |
+ |
+#endif // DEVICE_U2F_U2F_SIGN_H_ |