Index: components/update_client/client_update_protocol_ecdsa.h |
diff --git a/components/update_client/client_update_protocol_ecdsa.h b/components/update_client/client_update_protocol_ecdsa.h |
deleted file mode 100644 |
index 2459c8c8bee5a6cfe01ebb6a90c3ebb9ccd65084..0000000000000000000000000000000000000000 |
--- a/components/update_client/client_update_protocol_ecdsa.h |
+++ /dev/null |
@@ -1,88 +0,0 @@ |
-// Copyright 2016 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 COMPONENTS_UPDATE_CLIENT_CLIENT_UPDATE_PROTOCOL_ECDSA_H_ |
-#define COMPONENTS_UPDATE_CLIENT_CLIENT_UPDATE_PROTOCOL_ECDSA_H_ |
- |
-#include <stdint.h> |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/memory/scoped_ptr.h" |
-#include "base/strings/string_piece.h" |
- |
-namespace update_client { |
- |
-// Client Update Protocol v2, or CUP-ECDSA, is used by Google Update (Omaha) |
-// servers to ensure freshness and authenticity of update checks over HTTP, |
-// without the overhead of HTTPS -- namely, no PKI, no guarantee of privacy, |
-// and no request replay protection (since update checks are idempotent). |
-// |
-// CUP-ECDSA relies on a single signing operation using ECDSA with SHA-256, |
-// instead of the original CUP which used HMAC-SHA1 with a random signing key |
-// encrypted using RSA. |
-// |
-// Each ClientUpdateProtocolEcdsa object represents a single update check in |
-// flight -- a call to SignRequest() generates internal state that will be used |
-// by ValidateResponse(). |
-class ClientUpdateProtocolEcdsa { |
- public: |
- ~ClientUpdateProtocolEcdsa(); |
- |
- // Initializes this instance of CUP-ECDSA with a versioned public key. |
- // |key_version| must be non-negative. |public_key| is expected to be a |
- // DER-encoded ASN.1 SubjectPublicKeyInfo containing an ECDSA public key. |
- // Returns a NULL pointer on failure. |
- static scoped_ptr<ClientUpdateProtocolEcdsa> Create( |
- int key_version, |
- const base::StringPiece& public_key); |
- |
- // Generates freshness/authentication data for an outgoing update check. |
- // |request_body| contains the body of the update check request in UTF-8. |
- // On return, |query_params| contains a set of query parameters (in UTF-8) |
- // to be appended to the URL. |
- // |
- // This method will store internal state in this instance used by calls to |
- // ValidateResponse(); if you need to have multiple update checks in flight, |
- // initialize a separate CUP-ECDSA instance for each one. |
- void SignRequest(const base::StringPiece& request_body, |
- std::string* query_params); |
- |
- // Validates a response given to a update check request previously signed |
- // with SignRequest(). |response_body| contains the body of the response in |
- // UTF-8. |server_proof| contains the ECDSA signature and observed request |
- // hash, which is passed in the ETag HTTP header. Returns true if the |
- // response is valid and the observed request hash matches the sent hash. |
- // This method uses internal state that is set by a prior SignRequest() call. |
- bool ValidateResponse(const base::StringPiece& response_body, |
- const base::StringPiece& server_etag); |
- |
- private: |
- friend class CupEcdsaTest; |
- |
- ClientUpdateProtocolEcdsa(int key_version, |
- const base::StringPiece& public_key); |
- |
- // The server keeps multiple signing keys; a version must be sent so that |
- // the correct signing key is used to sign the assembled message. |
- const int pub_key_version_; |
- |
- // The ECDSA public key to use for verifying response signatures. |
- const std::vector<uint8_t> public_key_; |
- |
- // The SHA-256 hash of the XML request. This is modified on each call to |
- // SignRequest(), and checked by ValidateResponse(). |
- std::vector<uint8_t> request_hash_; |
- |
- // The query string containing key version and nonce in UTF-8 form. This is |
- // modified on each call to SignRequest(), and checked by ValidateResponse(). |
- std::string request_query_cup2key_; |
- |
- DISALLOW_IMPLICIT_CONSTRUCTORS(ClientUpdateProtocolEcdsa); |
-}; |
- |
-} // namespace update_client |
- |
-#endif // COMPONENTS_UPDATE_CLIENT_CLIENT_UPDATE_PROTOCOL_ECDSA_H_ |