Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(275)

Unified Diff: net/http/http_auth_handler_digest.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_auth_handler_basic_unittest.cc ('k') | net/http/http_auth_handler_digest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_auth_handler_digest.h
diff --git a/net/http/http_auth_handler_digest.h b/net/http/http_auth_handler_digest.h
deleted file mode 100644
index dbe02b4f2da0e43f8ad9fc46532adab549d24e6d..0000000000000000000000000000000000000000
--- a/net/http/http_auth_handler_digest.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright (c) 2011 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 NET_HTTP_HTTP_AUTH_HANDLER_DIGEST_H_
-#define NET_HTTP_HTTP_AUTH_HANDLER_DIGEST_H_
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/gtest_prod_util.h"
-#include "base/memory/scoped_ptr.h"
-#include "net/base/net_export.h"
-#include "net/http/http_auth_handler.h"
-#include "net/http/http_auth_handler_factory.h"
-
-namespace net {
-
-// Code for handling http digest authentication.
-class NET_EXPORT_PRIVATE HttpAuthHandlerDigest : public HttpAuthHandler {
- public:
- // A NonceGenerator is a simple interface for generating client nonces.
- // Unit tests can override the default client nonce behavior with fixed
- // nonce generation to get reproducible results.
- class NET_EXPORT_PRIVATE NonceGenerator {
- public:
- NonceGenerator();
- virtual ~NonceGenerator();
-
- // Generates a client nonce.
- virtual std::string GenerateNonce() const = 0;
- private:
- DISALLOW_COPY_AND_ASSIGN(NonceGenerator);
- };
-
- // DynamicNonceGenerator does a random shuffle of 16
- // characters to generate a client nonce.
- class DynamicNonceGenerator : public NonceGenerator {
- public:
- DynamicNonceGenerator();
- std::string GenerateNonce() const override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(DynamicNonceGenerator);
- };
-
- // FixedNonceGenerator always uses the same string specified at
- // construction time as the client nonce.
- class NET_EXPORT_PRIVATE FixedNonceGenerator : public NonceGenerator {
- public:
- explicit FixedNonceGenerator(const std::string& nonce);
-
- std::string GenerateNonce() const override;
-
- private:
- const std::string nonce_;
- DISALLOW_COPY_AND_ASSIGN(FixedNonceGenerator);
- };
-
- class NET_EXPORT_PRIVATE Factory : public HttpAuthHandlerFactory {
- public:
- Factory();
- ~Factory() override;
-
- // This factory owns the passed in |nonce_generator|.
- void set_nonce_generator(const NonceGenerator* nonce_generator);
-
- int CreateAuthHandler(HttpAuthChallengeTokenizer* challenge,
- HttpAuth::Target target,
- const GURL& origin,
- CreateReason reason,
- int digest_nonce_count,
- const BoundNetLog& net_log,
- scoped_ptr<HttpAuthHandler>* handler) override;
-
- private:
- scoped_ptr<const NonceGenerator> nonce_generator_;
- };
-
- HttpAuth::AuthorizationResult HandleAnotherChallenge(
- HttpAuthChallengeTokenizer* challenge) override;
-
- protected:
- bool Init(HttpAuthChallengeTokenizer* challenge) override;
-
- int GenerateAuthTokenImpl(const AuthCredentials* credentials,
- const HttpRequestInfo* request,
- const CompletionCallback& callback,
- std::string* auth_token) override;
-
- private:
- FRIEND_TEST_ALL_PREFIXES(HttpAuthHandlerDigestTest, ParseChallenge);
- FRIEND_TEST_ALL_PREFIXES(HttpAuthHandlerDigestTest, AssembleCredentials);
- FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest, DigestPreAuthNonceCount);
-
- // Possible values for the "algorithm" property.
- enum DigestAlgorithm {
- // No algorithm was specified. According to RFC 2617 this means
- // we should default to ALGORITHM_MD5.
- ALGORITHM_UNSPECIFIED,
-
- // Hashes are run for every request.
- ALGORITHM_MD5,
-
- // Hash is run only once during the first WWW-Authenticate handshake.
- // (SESS means session).
- ALGORITHM_MD5_SESS,
- };
-
- // Possible values for QualityOfProtection.
- // auth-int is not supported, see http://crbug.com/62890 for justification.
- enum QualityOfProtection {
- QOP_UNSPECIFIED,
- QOP_AUTH,
- };
-
- // |nonce_count| indicates how many times the server-specified nonce has
- // been used so far.
- // |nonce_generator| is used to create a client nonce, and is not owned by
- // the handler. The lifetime of the |nonce_generator| must exceed that of this
- // handler.
- HttpAuthHandlerDigest(int nonce_count, const NonceGenerator* nonce_generator);
- ~HttpAuthHandlerDigest() override;
-
- // Parse the challenge, saving the results into this instance.
- // Returns true on success.
- bool ParseChallenge(HttpAuthChallengeTokenizer* challenge);
-
- // Parse an individual property. Returns true on success.
- bool ParseChallengeProperty(const std::string& name,
- const std::string& value);
-
- // Generates a random string, to be used for client-nonce.
- static std::string GenerateNonce();
-
- // Convert enum value back to string.
- static std::string QopToString(QualityOfProtection qop);
- static std::string AlgorithmToString(DigestAlgorithm algorithm);
-
- // Extract the method and path of the request, as needed by
- // the 'A2' production. (path may be a hostname for proxy).
- void GetRequestMethodAndPath(const HttpRequestInfo* request,
- std::string* method,
- std::string* path) const;
-
- // Build up the 'response' production.
- std::string AssembleResponseDigest(const std::string& method,
- const std::string& path,
- const AuthCredentials& credentials,
- const std::string& cnonce,
- const std::string& nc) const;
-
- // Build up the value for (Authorization/Proxy-Authorization).
- std::string AssembleCredentials(const std::string& method,
- const std::string& path,
- const AuthCredentials& credentials,
- const std::string& cnonce,
- int nonce_count) const;
-
- // Information parsed from the challenge.
- std::string nonce_;
- std::string domain_;
- std::string opaque_;
- bool stale_;
- DigestAlgorithm algorithm_;
- QualityOfProtection qop_;
-
- // The realm as initially encoded over-the-wire. This is used in the
- // challenge text, rather than |realm_| which has been converted to
- // UTF-8.
- std::string original_realm_;
-
- int nonce_count_;
- const NonceGenerator* nonce_generator_;
-};
-
-} // namespace net
-
-#endif // NET_HTTP_HTTP_AUTH_HANDLER_DIGEST_H_
« no previous file with comments | « net/http/http_auth_handler_basic_unittest.cc ('k') | net/http/http_auth_handler_digest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698