# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.

Headers = [
    '/security/manager/ssl/nsNSSModule.h',
]

Classes = [
    {
        'name': 'NSSComponent',
        'cid': '{4cb64dfd-ca98-4e24-befd-0d9285a33bcb}',
        'contract_ids': ['@mozilla.org/psm;1'],
        'type': 'nsNSSComponent',
        'headers': ['nsNSSComponent.h'],
        'init_method': 'Init',
    },
    {
        'name': 'NSSErrors',
        'cid': '{9ef18451-a157-4d17-8132-47afef213689}',
        'contract_ids': ['@mozilla.org/nss_errors_service;1'],
        'type': 'mozilla::psm::NSSErrorsService',
        'headers': ['NSSErrorsService.h'],
        'init_method': 'Init',
    },
    {
        'cid': '{23ad3531-11d2-4e8e-805a-6a752e91681a}',
        'contract_ids': ['@mozilla.org/security/nssversion;1'],
        'type': 'nsNSSVersion',
        'headers': ['/security/manager/ssl/nsNSSVersion.h'],
    },
    {
        'cid': '{0c4f1ddc-1dd2-11b2-9d95-f2fdf113044b}',
        'contract_ids': ['@mozilla.org/security/sdr;1'],
        'type': 'SecretDecoderRing',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<SecretDecoderRing>',
    },
    {
        'cid': '{b084a2ce-1dd1-11b2-bf10-8324f8e065cc}',
        'contract_ids': ['@mozilla.org/security/pk11tokendb;1'],
        'type': 'nsPK11TokenDB',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<nsPK11TokenDB>',
    },
    {
        'cid': '{ff9fbcd7-9517-4334-b97a-ceed78909974}',
        'contract_ids': ['@mozilla.org/security/pkcs11moduledb;1'],
        'type': 'mozilla::psm::PKCS11ModuleDB',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<mozilla::psm::PKCS11ModuleDB>',
    },
    {
        'cid': '{660a3226-915c-4ffb-bb20-8985a632df05}',
        'contract_ids': [],
        'type': 'nsNSSCertificate',
        'headers': ['nsNSSCertificate.h'],
    },
    {
        'name': 'NSSCertificateDB',
        'cid': '{fb0bbc5c-452e-4783-b32c-80124693d871}',
        'contract_ids': ['@mozilla.org/security/x509certdb;1'],
        'type': 'nsNSSCertificateDB',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<nsNSSCertificateDB>',
    },
    {
        'cid': '{1dbc6eb6-0972-4bdb-9dc4-acd0abf72369}',
        'contract_ids': ['@mozilla.org/security/clientAuthRememberService;1'],
        'type': 'nsClientAuthRememberService',
        'headers': ['nsClientAuthRemember.h'],
        'init_method': 'Init',
    },
    {
        'cid': '{36a1d3b3-d886-4317-96ff-87b0005cfef7}',
        'contract_ids': ['@mozilla.org/security/hash;1'],
        'headers': ['/security/manager/ssl/crypto_hash/crypto_hash.h'],
        'legacy_constructor': 'crypto_hash_constructor',
    },
    {
        'cid': '{45a5fe2f-c350-4b86-962d-02d5aaaa955a}',
        'contract_ids': ['@mozilla.org/security/contentsignatureverifier;1'],
        'type': 'ContentSignatureVerifier',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<ContentSignatureVerifier>',
    },
    {
        'cid': '{67ba681d-5485-4fff-952c-2ee337ffdcd6}',
        'contract_ids': ['@mozilla.org/security/certoverride;1'],
        'type': 'nsCertOverrideService',
        'headers': ['/security/manager/ssl/nsCertOverrideService.h'],
        'init_method': 'Init',
    },
    {
        'name': 'RandomGenerator',
        'cid': '{be65e2b7-fe46-4e0f-88e0-4b385db4d68a}',
        'contract_ids': ['@mozilla.org/security/random-generator;1'],
        'type': 'nsRandomGenerator',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<nsRandomGenerator>',
    },
    {
        'cid': '{16786594-0296-4471-8096-8f84497ca428}',
        'contract_ids': ['@mozilla.org/security/transportsecurityinfo;1'],
        'type': 'mozilla::psm::TransportSecurityInfo',
    },
    {
        'name': 'SiteSecurity',
        'cid': '{16955eee-6c48-4152-9309-c42a465138a1}',
        'contract_ids': ['@mozilla.org/ssservice;1'],
        'type': 'nsSiteSecurityService',
        'headers': ['/security/manager/ssl/nsSiteSecurityService.h'],
        'init_method': 'Init',
        'processes': ProcessSelector.MAIN_PROCESS_ONLY,
    },
    {
        'cid': '{57972956-5718-42d2-8070-b3fc72212eaf}',
        'contract_ids': ['@mozilla.org/security/oskeystore;1'],
        'type': 'OSKeyStore',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<OSKeyStore>',
    },
    {
        'cid': '{4fe082ae-6ff0-4b41-b24f-eaa664f6e46a}',
        'contract_ids': ['@mozilla.org/security/osreauthenticator;1'],
        'type': 'OSReauthenticator',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<OSReauthenticator>',
    },
    {
        'cid': '{16e5c837-f877-4e23-9c64-eddf905e30e6}',
        'contract_ids': ['@mozilla.org/security/certstorage;1'],
        'headers': ['/security/manager/ssl/cert_storage/src/cert_storage.h'],
        'legacy_constructor': 'cert_storage_constructor',
    },
    {
        'cid': '{f64432b9-e8c6-41b4-b2da-8eb004344bba}',
        'contract_ids': ['@mozilla.org/security/publickeypinningservice;1'],
        'type': 'psm::PublicKeyPinningService',
        'headers': ['/security/manager/ssl/PublicKeyPinningService.h'],
    },
    {
        'cid': '{4ea60761-31d6-491d-9e34-4b53a26c416c}',
        'contract_ids': ['@mozilla.org/security/nsCertTree;1'],
        'type': 'nsCertTree',
        'legacy_constructor': 'mozilla::psm::NSSConstructor<nsCertTree>',
    },
    {
        'cid': '{9676cfc4-6e84-11ec-a30d-d3cd0af86e01}',
        'contract_ids': ['@mozilla.org/security/CRLiteTimestamp;1'],
        'type': 'mozilla::psm::CRLiteTimestamp',
        'headers': ['/security/certverifier/CRLiteTimestamp.h'],
    },
    {
        'cid': '{71b49926-fd4e-43e2-ab8d-d9b049413c0b}',
        'contract_ids': ['@mozilla.org/security/datastoragemanager;1'],
        'type': 'mozilla::DataStorageManager',
        'headers': ['/security/manager/ssl/DataStorageManager.h'],
    },
    {
        'cid': '{d7d2490d-2640-411b-9f09-a538803c11ee}',
        'contract_ids': ['@mozilla.org/security/ClientAuthDialogService;1'],
        'esModule': 'resource://gre/modules/psm/ClientAuthDialogService.sys.mjs',
        'constructor': 'ClientAuthDialogService',
    },
]
