// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_CLIENT_UPDATE_PROTOCOL_ECDSA_H_ #define COMPONENTS_CLIENT_UPDATE_PROTOCOL_ECDSA_H_ #include <stdint.h> #include <memory> #include <string> #include <string_view> #include <vector> namespace client_update_protocol { // Client Update Protocol v2, or CUP-ECDSA, is used by Google Update (Omaha) // servers to ensure freshness and authenticity of server responses over HTTP, // without the overhead of HTTPS -- namely, no PKI, no guarantee of privacy, and // no request replay protection. // // 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 |Ecdsa| object represents a single network ping in flight -- a call to // SignRequest() generates internal state that will be used by // ValidateResponse(). class Ecdsa { … }; } // namespace client_update_protocol #endif // COMPONENTS_CLIENT_UPDATE_PROTOCOL_ECDSA_H_