summaryrefslogtreecommitdiffstats
path: root/security/manager/ssl/nsISSLStatus.idl
blob: 52cb1df30abec6d6f6b2e61e4c1eae4f9e2e23fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 *
 * 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 nsIX509Cert;

[scriptable, uuid(fa9ba95b-ca3b-498a-b889-7c79cf28fee8)]
interface nsISSLStatus : nsISupports {
  readonly attribute nsIX509Cert serverCert;

  readonly attribute ACString cipherName;
  readonly attribute unsigned long keyLength;
  readonly attribute unsigned long secretKeyLength;
  [must_use]
  readonly attribute ACString keaGroupName;
  [must_use]
  readonly attribute ACString signatureSchemeName;

  const short SSL_VERSION_3   = 0;
  const short TLS_VERSION_1   = 1;
  const short TLS_VERSION_1_1 = 2;
  const short TLS_VERSION_1_2 = 3;
  const short TLS_VERSION_1_3 = 4;
  readonly attribute unsigned short protocolVersion;

  const short CERTIFICATE_TRANSPARENCY_NOT_APPLICABLE = 0;
  const short CERTIFICATE_TRANSPARENCY_NONE           = 1;
  const short CERTIFICATE_TRANSPARENCY_OK             = 2;
  const short CERTIFICATE_TRANSPARENCY_UNKNOWN_LOG    = 3;
  const short CERTIFICATE_TRANSPARENCY_INVALID        = 4;
  readonly attribute unsigned short certificateTransparencyStatus;

  readonly attribute boolean isDomainMismatch;
  readonly attribute boolean isNotValidAtThisTime;

  /* Note: To distinguish between
   *         "unstrusted because missing or untrusted issuer"
   *       and
   *         "untrusted because self signed"
   *       query nsIX509Cert::isSelfSigned
   */
  readonly attribute boolean isUntrusted;

  /**
   * True only if (and after) serverCert was successfully validated as
   * Extended Validation (EV).
   */
  readonly attribute boolean isExtendedValidation;
};