Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/security/manager/ssl/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 6 kB image not shown  

Impressum nsISiteSecurityService.idl   Sprache: unbekannt

 
Haftungsausschluß.idl KontaktUnknown {[0] [0] [0]}diese Dinge liegen außhalb unserer Verantwortung

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIURI;

[ref] native const_OriginAttributesRef(const mozilla::OriginAttributes);

[scriptable, uuid(275127f8-dbd7-4681-afbf-6df0c6587a01)]
interface nsISiteSecurityService : nsISupports
{
    const uint32_t Success = 0;
    const uint32_t ERROR_UNKNOWN = 1;
    // ERROR_UNTRUSTWORTHY_CONNECTION was 2 (the caller is now responsible for
    // checking this)
    const uint32_t ERROR_COULD_NOT_PARSE_HEADER = 3;
    const uint32_t ERROR_NO_MAX_AGE = 4;
    const uint32_t ERROR_MULTIPLE_MAX_AGES = 5;
    const uint32_t ERROR_INVALID_MAX_AGE = 6;
    const uint32_t ERROR_MULTIPLE_INCLUDE_SUBDOMAINS = 7;
    const uint32_t ERROR_INVALID_INCLUDE_SUBDOMAINS = 8;
    // The constants that were removed below were used in HPKP processing
    // (which has been removed entirely).
    // ERROR_INVALID_PIN was 9
    // ERROR_MULTIPLE_REPORT_URIS was 10
    // ERROR_PINSET_DOES_NOT_MATCH_CHAIN was 11
    // ERROR_NO_BACKUP_PIN was 12
    const uint32_t ERROR_COULD_NOT_SAVE_STATE = 13;
    // ERROR_ROOT_NOT_BUILT_IN was 14

    /**
     * Parses a given HTTP header and records the results internally.
     * Currently one header type is supported: HSTS (aka STS).
     * The format of the HSTS header is defined by the HSTS specification:
     * https://tools.ietf.org/html/rfc6797
     * and allows a host to specify that future HTTP requests should be
     * upgraded to HTTPS.
     * The caller is responsible for first determining that the header was
     * delivered via a trustworthy connection (namely, https with no errors).
     *
     * @param aSourceURI the URI of the resource with the HTTP header.
     * @param aHeader the HTTP response header specifying security data.
     * @param aOriginAttributes the origin attributes that isolate this origin,
     *                          (note that this implementation does not isolate
     *                          by userContextId because of the risk of man-in-
     *                          the-middle attacks before trust-on-second-use
     *                          happens).
     *                          If mPrivateBrowsingId > 0, information gathered
     *                          from this header will not be saved persistently.
     * @param aMaxAge the parsed max-age directive of the header.
     * @param aIncludeSubdomains the parsed includeSubdomains directive.
     * @param aFailureResult a more specific failure result if NS_ERROR_FAILURE
                             was returned.
     * @return NS_OK            if it succeeds
     *         NS_ERROR_FAILURE if it can't be parsed
     *         NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA
     *                          if there are unrecognized tokens in the header.
     */
    [binaryname(ProcessHeader), noscript, must_use]
    void processHeaderNative(in nsIURI aSourceURI,
                             in ACString aHeader,
                             in const_OriginAttributesRef aOriginAttributes,
                             [optional] out unsigned long long aMaxAge,
                             [optional] out boolean aIncludeSubdomains,
                             [optional] out uint32_t aFailureResult);

    [binaryname(ProcessHeaderScriptable), implicit_jscontext, optional_argc,
     must_use]
    void processHeader(in nsIURI aSourceURI,
                       in ACString aHeader,
                       [optional] in jsval aOriginAttributes,
                       [optional] out unsigned long long aMaxAge,
                       [optional] out boolean aIncludeSubdomains,
                       [optional] out uint32_t aFailureResult);

    // Helper enum for use with resetState.
    cenum ResetStateBy : 8 {
      // reset state for the exact domain
      ExactDomain,
      // reset state for any domain rooted by the given domain
      // (e.g. foo.example.com if given example.com)
      RootDomain,
      // reset all state associated with the given base domain (e.g. data
      // partitioned by total cookie protection)
      BaseDomain,
    };

    /**
     * Resets HSTS state a host, including the includeSubdomains state that
     * would affect subdomains. This essentially removes the state for the
     * domain tree rooted at this host. If any preloaded information is present
     * for that host, that information will then be used instead of any other
     * previously existing state.
     *
     * @param aURI    the URI of the target host
     * @param aOriginAttributes the origin attributes that isolate this origin,
     *                          (note that this implementation does not isolate
     *                          by userContextId because of the risk of man-in-
     *                          the-middle attacks before trust-on-second-use
     *                          happens).
     * @param aScope  The scope of state to reset. See ResetStateBy. Defaults
     *                to ExactDomain.
     */
    [implicit_jscontext, optional_argc, must_use]
    void resetState(in nsIURI aURI,
                    [optional] in jsval aOriginAttributes,
                    [optional] in nsISiteSecurityService_ResetStateBy aScope);

    /**
     * Checks whether or not the URI's hostname has HSTS set.
     * For example:
     * The URI is an HSTS URI if either the host has the HSTS state set, or one
     * of its super-domains has the HSTS "includeSubdomains" flag set.
     * NOTE: this function makes decisions based only on the
     * host contained in the URI, and disregards other portions of the URI
     * such as path and port.
     *
     * @param aURI the URI to query for STS state.
     * @param aOriginAttributes the origin attributes that isolate this origin,
     *                          (note that this implementation does not isolate
     *                          by userContextId because of the risk of man-in-
     *                          the-middle attacks before trust-on-second-use
     *                          happens).
     */
    [binaryname(IsSecureURI), noscript, must_use]
    boolean isSecureURINative(in nsIURI aURI,
                              in const_OriginAttributesRef aOriginAttributes);

    [binaryname(IsSecureURIScriptable), implicit_jscontext, optional_argc,
     must_use]
    boolean isSecureURI(in nsIURI aURI, [optional] in jsval aOriginAttributes);

    /**
     * Removes all non-preloaded HSTS state by resetting to factory-original
     * settings.
     */
    [must_use]
    void clearAll();
};

%{C++
#define NS_SSSERVICE_CONTRACTID "@mozilla.org/ssservice;1"
%}

[ Seitenstruktur0.148Drucken  ]