161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit DeviceCertificateKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport type { AsyncCallback } from './@ohos.base';
2261847f8eSopenharmony_ci
2361847f8eSopenharmony_ci/**
2461847f8eSopenharmony_ci * OpenHarmony Universal CertificateManager
2561847f8eSopenharmony_ci *
2661847f8eSopenharmony_ci * @namespace certificateManager
2761847f8eSopenharmony_ci * @syscap SystemCapability.Security.CertificateManager
2861847f8eSopenharmony_ci * @since 11
2961847f8eSopenharmony_ci */
3061847f8eSopenharmony_cideclare namespace certificateManager {
3161847f8eSopenharmony_ci  /**
3261847f8eSopenharmony_ci   * Enum for result code
3361847f8eSopenharmony_ci   *
3461847f8eSopenharmony_ci   * @enum { number }
3561847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
3661847f8eSopenharmony_ci   * @since 11
3761847f8eSopenharmony_ci   */
3861847f8eSopenharmony_ci  export enum CMErrorCode {
3961847f8eSopenharmony_ci    /**
4061847f8eSopenharmony_ci     * Indicates that the application has no permission to call the API.
4161847f8eSopenharmony_ci     *
4261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
4361847f8eSopenharmony_ci     * @since 11
4461847f8eSopenharmony_ci     */
4561847f8eSopenharmony_ci    CM_ERROR_NO_PERMISSION = 201,
4661847f8eSopenharmony_ci
4761847f8eSopenharmony_ci    /**
4861847f8eSopenharmony_ci     * Indicates that the application is not a system application.
4961847f8eSopenharmony_ci     *
5061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
5161847f8eSopenharmony_ci     * @systemapi
5261847f8eSopenharmony_ci     * @since 11
5361847f8eSopenharmony_ci     */
5461847f8eSopenharmony_ci    CM_ERROR_NOT_SYSTEM_APP = 202,
5561847f8eSopenharmony_ci
5661847f8eSopenharmony_ci    /**
5761847f8eSopenharmony_ci     * Indicates that the input parameters are invalid.
5861847f8eSopenharmony_ci     *
5961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
6061847f8eSopenharmony_ci     * @since 11
6161847f8eSopenharmony_ci     */
6261847f8eSopenharmony_ci    CM_ERROR_INVALID_PARAMS = 401,
6361847f8eSopenharmony_ci
6461847f8eSopenharmony_ci    /**
6561847f8eSopenharmony_ci     * Indicates that internal error.
6661847f8eSopenharmony_ci     *
6761847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
6861847f8eSopenharmony_ci     * @since 11
6961847f8eSopenharmony_ci     */
7061847f8eSopenharmony_ci    CM_ERROR_GENERIC = 17500001,
7161847f8eSopenharmony_ci
7261847f8eSopenharmony_ci    /**
7361847f8eSopenharmony_ci     * Indicates that the certificate does not exist.
7461847f8eSopenharmony_ci     *
7561847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
7661847f8eSopenharmony_ci     * @since 11
7761847f8eSopenharmony_ci     */
7861847f8eSopenharmony_ci    CM_ERROR_NO_FOUND = 17500002,
7961847f8eSopenharmony_ci
8061847f8eSopenharmony_ci    /**
8161847f8eSopenharmony_ci     * Indicates that the keystore is in an invalid format or the keystore password is incorrect.
8261847f8eSopenharmony_ci     *
8361847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
8461847f8eSopenharmony_ci     * @since 11
8561847f8eSopenharmony_ci     */
8661847f8eSopenharmony_ci    CM_ERROR_INCORRECT_FORMAT = 17500003,
8761847f8eSopenharmony_ci
8861847f8eSopenharmony_ci    /**
8961847f8eSopenharmony_ci     * Indicates that the number of certificates or credentials reaches the maximum allowed.
9061847f8eSopenharmony_ci     *
9161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
9261847f8eSopenharmony_ci     * @since 12
9361847f8eSopenharmony_ci     */
9461847f8eSopenharmony_ci    CM_ERROR_MAX_CERT_COUNT_REACHED = 17500004,
9561847f8eSopenharmony_ci
9661847f8eSopenharmony_ci    /**
9761847f8eSopenharmony_ci     * Indicates that the application is not authorized by the user.
9861847f8eSopenharmony_ci     *
9961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
10061847f8eSopenharmony_ci     * @since 12
10161847f8eSopenharmony_ci     */
10261847f8eSopenharmony_ci    CM_ERROR_NO_AUTHORIZATION = 17500005
10361847f8eSopenharmony_ci  }
10461847f8eSopenharmony_ci
10561847f8eSopenharmony_ci  /**
10661847f8eSopenharmony_ci   * Provides the CertInfo type.
10761847f8eSopenharmony_ci   *
10861847f8eSopenharmony_ci   * @typedef CertInfo
10961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
11061847f8eSopenharmony_ci   * @since 11
11161847f8eSopenharmony_ci   */
11261847f8eSopenharmony_ci  export interface CertInfo {
11361847f8eSopenharmony_ci    /**
11461847f8eSopenharmony_ci     * Indicates the uri of certificate.
11561847f8eSopenharmony_ci     *
11661847f8eSopenharmony_ci     * @type { string }
11761847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
11861847f8eSopenharmony_ci     * @since 11
11961847f8eSopenharmony_ci     */
12061847f8eSopenharmony_ci    uri: string;
12161847f8eSopenharmony_ci
12261847f8eSopenharmony_ci    /**
12361847f8eSopenharmony_ci     * Indicates the alias of certificate.
12461847f8eSopenharmony_ci     *
12561847f8eSopenharmony_ci     * @type { string }
12661847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
12761847f8eSopenharmony_ci     * @since 11
12861847f8eSopenharmony_ci     */
12961847f8eSopenharmony_ci    certAlias: string;
13061847f8eSopenharmony_ci
13161847f8eSopenharmony_ci    /**
13261847f8eSopenharmony_ci     * Indicates the state of certificate.
13361847f8eSopenharmony_ci     *
13461847f8eSopenharmony_ci     * @type { boolean }
13561847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
13661847f8eSopenharmony_ci     * @since 11
13761847f8eSopenharmony_ci     */
13861847f8eSopenharmony_ci    state: boolean;
13961847f8eSopenharmony_ci
14061847f8eSopenharmony_ci    /**
14161847f8eSopenharmony_ci     * Indicates the issuer name of certificate.
14261847f8eSopenharmony_ci     *
14361847f8eSopenharmony_ci     * @type { string }
14461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
14561847f8eSopenharmony_ci     * @since 11
14661847f8eSopenharmony_ci     */
14761847f8eSopenharmony_ci    issuerName: string;
14861847f8eSopenharmony_ci
14961847f8eSopenharmony_ci    /**
15061847f8eSopenharmony_ci     * Indicates the subject name of certificate.
15161847f8eSopenharmony_ci     *
15261847f8eSopenharmony_ci     * @type { string }
15361847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
15461847f8eSopenharmony_ci     * @since 11
15561847f8eSopenharmony_ci     */
15661847f8eSopenharmony_ci    subjectName: string;
15761847f8eSopenharmony_ci
15861847f8eSopenharmony_ci    /**
15961847f8eSopenharmony_ci     * Indicates the serial number of certificate.
16061847f8eSopenharmony_ci     *
16161847f8eSopenharmony_ci     * @type { string }
16261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
16361847f8eSopenharmony_ci     * @since 11
16461847f8eSopenharmony_ci     */
16561847f8eSopenharmony_ci    serial: string;
16661847f8eSopenharmony_ci
16761847f8eSopenharmony_ci    /**
16861847f8eSopenharmony_ci     * Indicates the not before time of certificate.
16961847f8eSopenharmony_ci     *
17061847f8eSopenharmony_ci     * @type { string }
17161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
17261847f8eSopenharmony_ci     * @since 11
17361847f8eSopenharmony_ci     */
17461847f8eSopenharmony_ci    notBefore: string;
17561847f8eSopenharmony_ci
17661847f8eSopenharmony_ci    /**
17761847f8eSopenharmony_ci     * Indicates the not after time of certificate.
17861847f8eSopenharmony_ci     *
17961847f8eSopenharmony_ci     * @type { string }
18061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
18161847f8eSopenharmony_ci     * @since 11
18261847f8eSopenharmony_ci     */
18361847f8eSopenharmony_ci    notAfter: string;
18461847f8eSopenharmony_ci
18561847f8eSopenharmony_ci    /**
18661847f8eSopenharmony_ci     * Indicates the fingerprint of certificate.
18761847f8eSopenharmony_ci     *
18861847f8eSopenharmony_ci     * @type { string }
18961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
19061847f8eSopenharmony_ci     * @since 11
19161847f8eSopenharmony_ci     */
19261847f8eSopenharmony_ci    fingerprintSha256: string;
19361847f8eSopenharmony_ci
19461847f8eSopenharmony_ci    /**
19561847f8eSopenharmony_ci     * Indicates the certificate binary data.
19661847f8eSopenharmony_ci     *
19761847f8eSopenharmony_ci     * @type { Uint8Array }
19861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
19961847f8eSopenharmony_ci     * @since 11
20061847f8eSopenharmony_ci     */
20161847f8eSopenharmony_ci    cert: Uint8Array;
20261847f8eSopenharmony_ci  }
20361847f8eSopenharmony_ci
20461847f8eSopenharmony_ci  /**
20561847f8eSopenharmony_ci   * Provides the abstract Cert type.
20661847f8eSopenharmony_ci   *
20761847f8eSopenharmony_ci   * @typedef CertAbstract
20861847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
20961847f8eSopenharmony_ci   * @since 11
21061847f8eSopenharmony_ci   */
21161847f8eSopenharmony_ci  export interface CertAbstract {
21261847f8eSopenharmony_ci    /**
21361847f8eSopenharmony_ci     * Indicates the uri of certificate.
21461847f8eSopenharmony_ci     *
21561847f8eSopenharmony_ci     * @type { string }
21661847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
21761847f8eSopenharmony_ci     * @since 11
21861847f8eSopenharmony_ci     */
21961847f8eSopenharmony_ci    uri: string;
22061847f8eSopenharmony_ci
22161847f8eSopenharmony_ci    /**
22261847f8eSopenharmony_ci     * Indicates the alias of certificate.
22361847f8eSopenharmony_ci     *
22461847f8eSopenharmony_ci     * @type { string }
22561847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
22661847f8eSopenharmony_ci     * @since 11
22761847f8eSopenharmony_ci     */
22861847f8eSopenharmony_ci    certAlias: string;
22961847f8eSopenharmony_ci
23061847f8eSopenharmony_ci    /**
23161847f8eSopenharmony_ci     * Indicates the state of certificate.
23261847f8eSopenharmony_ci     *
23361847f8eSopenharmony_ci     * @type { boolean }
23461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
23561847f8eSopenharmony_ci     * @since 11
23661847f8eSopenharmony_ci     */
23761847f8eSopenharmony_ci    state: boolean;
23861847f8eSopenharmony_ci
23961847f8eSopenharmony_ci    /**
24061847f8eSopenharmony_ci     * Indicates the subject name of certificate.
24161847f8eSopenharmony_ci     *
24261847f8eSopenharmony_ci     * @type { string }
24361847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
24461847f8eSopenharmony_ci     * @since 11
24561847f8eSopenharmony_ci     */
24661847f8eSopenharmony_ci    subjectName: string;
24761847f8eSopenharmony_ci  }
24861847f8eSopenharmony_ci
24961847f8eSopenharmony_ci  /**
25061847f8eSopenharmony_ci   * Provides the Credential type.
25161847f8eSopenharmony_ci   *
25261847f8eSopenharmony_ci   * @typedef Credential
25361847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
25461847f8eSopenharmony_ci   * @since 11
25561847f8eSopenharmony_ci   */
25661847f8eSopenharmony_ci  export interface Credential {
25761847f8eSopenharmony_ci    /**
25861847f8eSopenharmony_ci     * Indicates the type of Credential.
25961847f8eSopenharmony_ci     *
26061847f8eSopenharmony_ci     * @type { string }
26161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
26261847f8eSopenharmony_ci     * @since 11
26361847f8eSopenharmony_ci     */
26461847f8eSopenharmony_ci    type: string;
26561847f8eSopenharmony_ci
26661847f8eSopenharmony_ci    /**
26761847f8eSopenharmony_ci     * Indicates the alias of Credential.
26861847f8eSopenharmony_ci     *
26961847f8eSopenharmony_ci     * @type { string }
27061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
27161847f8eSopenharmony_ci     * @since 11
27261847f8eSopenharmony_ci     */
27361847f8eSopenharmony_ci    alias: string;
27461847f8eSopenharmony_ci
27561847f8eSopenharmony_ci    /**
27661847f8eSopenharmony_ci     * Indicates the uri of Credential.
27761847f8eSopenharmony_ci     *
27861847f8eSopenharmony_ci     * @type { string }
27961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
28061847f8eSopenharmony_ci     * @since 11
28161847f8eSopenharmony_ci     */
28261847f8eSopenharmony_ci    keyUri: string;
28361847f8eSopenharmony_ci
28461847f8eSopenharmony_ci    /**
28561847f8eSopenharmony_ci     * Indicates the number of certificates included in the credential.
28661847f8eSopenharmony_ci     *
28761847f8eSopenharmony_ci     * @type { number }
28861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
28961847f8eSopenharmony_ci     * @since 11
29061847f8eSopenharmony_ci     */
29161847f8eSopenharmony_ci    certNum: number;
29261847f8eSopenharmony_ci
29361847f8eSopenharmony_ci    /**
29461847f8eSopenharmony_ci     * Indicates the number of key included in the credential.
29561847f8eSopenharmony_ci     *
29661847f8eSopenharmony_ci     * @type { number }
29761847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
29861847f8eSopenharmony_ci     * @since 11
29961847f8eSopenharmony_ci     */
30061847f8eSopenharmony_ci    keyNum: number;
30161847f8eSopenharmony_ci
30261847f8eSopenharmony_ci    /**
30361847f8eSopenharmony_ci     * Indicates the credential binary data.
30461847f8eSopenharmony_ci     *
30561847f8eSopenharmony_ci     * @type { Uint8Array }
30661847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
30761847f8eSopenharmony_ci     * @since 11
30861847f8eSopenharmony_ci     */
30961847f8eSopenharmony_ci    credentialData: Uint8Array;
31061847f8eSopenharmony_ci  }
31161847f8eSopenharmony_ci
31261847f8eSopenharmony_ci  /**
31361847f8eSopenharmony_ci   * Provides the abstract Credential type.
31461847f8eSopenharmony_ci   *
31561847f8eSopenharmony_ci   * @typedef CredentialAbstract
31661847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
31761847f8eSopenharmony_ci   * @since 11
31861847f8eSopenharmony_ci   */
31961847f8eSopenharmony_ci  export interface CredentialAbstract {
32061847f8eSopenharmony_ci    /**
32161847f8eSopenharmony_ci     * Indicates the type of Credential.
32261847f8eSopenharmony_ci     *
32361847f8eSopenharmony_ci     * @type { string }
32461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
32561847f8eSopenharmony_ci     * @since 11
32661847f8eSopenharmony_ci     */
32761847f8eSopenharmony_ci    type: string;
32861847f8eSopenharmony_ci
32961847f8eSopenharmony_ci    /**
33061847f8eSopenharmony_ci     * Indicates the alias of Credential.
33161847f8eSopenharmony_ci     *
33261847f8eSopenharmony_ci     * @type { string }
33361847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
33461847f8eSopenharmony_ci     * @since 11
33561847f8eSopenharmony_ci     */
33661847f8eSopenharmony_ci    alias: string;
33761847f8eSopenharmony_ci
33861847f8eSopenharmony_ci    /**
33961847f8eSopenharmony_ci     * Indicates the uri of Credential.
34061847f8eSopenharmony_ci     *
34161847f8eSopenharmony_ci     * @type { string }
34261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
34361847f8eSopenharmony_ci     * @since 11
34461847f8eSopenharmony_ci     */
34561847f8eSopenharmony_ci    keyUri: string;
34661847f8eSopenharmony_ci  }
34761847f8eSopenharmony_ci
34861847f8eSopenharmony_ci  /**
34961847f8eSopenharmony_ci   * Provides the CMResult type.
35061847f8eSopenharmony_ci   *
35161847f8eSopenharmony_ci   * @typedef CMResult
35261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
35361847f8eSopenharmony_ci   * @since 11
35461847f8eSopenharmony_ci   */
35561847f8eSopenharmony_ci  export interface CMResult {
35661847f8eSopenharmony_ci    /**
35761847f8eSopenharmony_ci     * Indicates the certificate list of CMResult.
35861847f8eSopenharmony_ci     *
35961847f8eSopenharmony_ci     * @type { ?Array<CertAbstract> }
36061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
36161847f8eSopenharmony_ci     * @since 11
36261847f8eSopenharmony_ci     */
36361847f8eSopenharmony_ci    certList?: Array<CertAbstract>;
36461847f8eSopenharmony_ci
36561847f8eSopenharmony_ci    /**
36661847f8eSopenharmony_ci     * Indicates the certificate info of CMResult.
36761847f8eSopenharmony_ci     *
36861847f8eSopenharmony_ci     * @type { ?CertInfo }
36961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
37061847f8eSopenharmony_ci     * @since 11
37161847f8eSopenharmony_ci     */
37261847f8eSopenharmony_ci    certInfo?: CertInfo;
37361847f8eSopenharmony_ci
37461847f8eSopenharmony_ci    /**
37561847f8eSopenharmony_ci     * Indicates the credential list of CMResult.
37661847f8eSopenharmony_ci     *
37761847f8eSopenharmony_ci     * @type { ?Array<CredentialAbstract> }
37861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
37961847f8eSopenharmony_ci     * @since 11
38061847f8eSopenharmony_ci     */
38161847f8eSopenharmony_ci    credentialList?: Array<CredentialAbstract>;
38261847f8eSopenharmony_ci
38361847f8eSopenharmony_ci    /**
38461847f8eSopenharmony_ci     * Indicates the credential of CMResult.
38561847f8eSopenharmony_ci     *
38661847f8eSopenharmony_ci     * @type { ?Credential }
38761847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
38861847f8eSopenharmony_ci     * @since 11
38961847f8eSopenharmony_ci     */
39061847f8eSopenharmony_ci    credential?: Credential;
39161847f8eSopenharmony_ci
39261847f8eSopenharmony_ci    /**
39361847f8eSopenharmony_ci     * Indicates the app uid list of CMResult.
39461847f8eSopenharmony_ci     *
39561847f8eSopenharmony_ci     * @type { ?Array<string> }
39661847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
39761847f8eSopenharmony_ci     * @since 11
39861847f8eSopenharmony_ci     */
39961847f8eSopenharmony_ci    appUidList?: Array<string>;
40061847f8eSopenharmony_ci
40161847f8eSopenharmony_ci    /**
40261847f8eSopenharmony_ci     * Indicates the certificate uri of CMResult.
40361847f8eSopenharmony_ci     *
40461847f8eSopenharmony_ci     * @type { ?string }
40561847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
40661847f8eSopenharmony_ci     * @since 11
40761847f8eSopenharmony_ci     */
40861847f8eSopenharmony_ci    uri?: string;
40961847f8eSopenharmony_ci
41061847f8eSopenharmony_ci    /**
41161847f8eSopenharmony_ci     * Indicates the outData of CMResult.
41261847f8eSopenharmony_ci     *
41361847f8eSopenharmony_ci     * @type { ?Uint8Array }
41461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
41561847f8eSopenharmony_ci     * @since 11
41661847f8eSopenharmony_ci     */
41761847f8eSopenharmony_ci    outData?: Uint8Array;
41861847f8eSopenharmony_ci  }
41961847f8eSopenharmony_ci
42061847f8eSopenharmony_ci  /**
42161847f8eSopenharmony_ci   * Enum for Key Purpose
42261847f8eSopenharmony_ci   *
42361847f8eSopenharmony_ci   * @enum { number }
42461847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
42561847f8eSopenharmony_ci   * @since 11
42661847f8eSopenharmony_ci   */
42761847f8eSopenharmony_ci  export enum CmKeyPurpose {
42861847f8eSopenharmony_ci    /**
42961847f8eSopenharmony_ci     * Indicates that key for signature.
43061847f8eSopenharmony_ci     *
43161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
43261847f8eSopenharmony_ci     * @since 11
43361847f8eSopenharmony_ci     */
43461847f8eSopenharmony_ci    CM_KEY_PURPOSE_SIGN = 4,
43561847f8eSopenharmony_ci
43661847f8eSopenharmony_ci    /**
43761847f8eSopenharmony_ci     * Indicates that key for verify.
43861847f8eSopenharmony_ci     *
43961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
44061847f8eSopenharmony_ci     * @since 11
44161847f8eSopenharmony_ci     */
44261847f8eSopenharmony_ci    CM_KEY_PURPOSE_VERIFY = 8
44361847f8eSopenharmony_ci  }
44461847f8eSopenharmony_ci
44561847f8eSopenharmony_ci  /**
44661847f8eSopenharmony_ci   * Enum for Key Digest
44761847f8eSopenharmony_ci   *
44861847f8eSopenharmony_ci   * @enum { number }
44961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
45061847f8eSopenharmony_ci   * @since 11
45161847f8eSopenharmony_ci   */
45261847f8eSopenharmony_ci  export enum CmKeyDigest {
45361847f8eSopenharmony_ci    /**
45461847f8eSopenharmony_ci     * Indicates that key digest is none.
45561847f8eSopenharmony_ci     *
45661847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
45761847f8eSopenharmony_ci     * @since 11
45861847f8eSopenharmony_ci     */
45961847f8eSopenharmony_ci    CM_DIGEST_NONE = 0,
46061847f8eSopenharmony_ci
46161847f8eSopenharmony_ci    /**
46261847f8eSopenharmony_ci     * Indicates that key digest is md5.
46361847f8eSopenharmony_ci     *
46461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
46561847f8eSopenharmony_ci     * @since 11
46661847f8eSopenharmony_ci     */
46761847f8eSopenharmony_ci    CM_DIGEST_MD5 = 1,
46861847f8eSopenharmony_ci
46961847f8eSopenharmony_ci    /**
47061847f8eSopenharmony_ci     * Indicates that key digest is sha1.
47161847f8eSopenharmony_ci     *
47261847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
47361847f8eSopenharmony_ci     * @since 11
47461847f8eSopenharmony_ci     */
47561847f8eSopenharmony_ci    CM_DIGEST_SHA1 = 2,
47661847f8eSopenharmony_ci
47761847f8eSopenharmony_ci    /**
47861847f8eSopenharmony_ci     * Indicates that key digest is sha224.
47961847f8eSopenharmony_ci     *
48061847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
48161847f8eSopenharmony_ci     * @since 11
48261847f8eSopenharmony_ci     */
48361847f8eSopenharmony_ci    CM_DIGEST_SHA224 = 3,
48461847f8eSopenharmony_ci
48561847f8eSopenharmony_ci    /**
48661847f8eSopenharmony_ci     * Indicates that key digest is sha256.
48761847f8eSopenharmony_ci     *
48861847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
48961847f8eSopenharmony_ci     * @since 11
49061847f8eSopenharmony_ci     */
49161847f8eSopenharmony_ci    CM_DIGEST_SHA256 = 4,
49261847f8eSopenharmony_ci
49361847f8eSopenharmony_ci    /**
49461847f8eSopenharmony_ci     * Indicates that key digest is sha384.
49561847f8eSopenharmony_ci     *
49661847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
49761847f8eSopenharmony_ci     * @since 11
49861847f8eSopenharmony_ci     */
49961847f8eSopenharmony_ci    CM_DIGEST_SHA384 = 5,
50061847f8eSopenharmony_ci
50161847f8eSopenharmony_ci    /**
50261847f8eSopenharmony_ci     * Indicates that key digest is sha512.
50361847f8eSopenharmony_ci     *
50461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
50561847f8eSopenharmony_ci     * @since 11
50661847f8eSopenharmony_ci     */
50761847f8eSopenharmony_ci    CM_DIGEST_SHA512 = 6
50861847f8eSopenharmony_ci  }
50961847f8eSopenharmony_ci
51061847f8eSopenharmony_ci  /**
51161847f8eSopenharmony_ci   * Enum for Key Padding
51261847f8eSopenharmony_ci   *
51361847f8eSopenharmony_ci   * @enum { number }
51461847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
51561847f8eSopenharmony_ci   * @since 11
51661847f8eSopenharmony_ci   */
51761847f8eSopenharmony_ci  export enum CmKeyPadding {
51861847f8eSopenharmony_ci    /**
51961847f8eSopenharmony_ci     * Indicates that key padding is none.
52061847f8eSopenharmony_ci     *
52161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
52261847f8eSopenharmony_ci     * @since 11
52361847f8eSopenharmony_ci     */
52461847f8eSopenharmony_ci    CM_PADDING_NONE = 0,
52561847f8eSopenharmony_ci
52661847f8eSopenharmony_ci    /**
52761847f8eSopenharmony_ci     * Indicates that key padding is PSS.
52861847f8eSopenharmony_ci     *
52961847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
53061847f8eSopenharmony_ci     * @since 11
53161847f8eSopenharmony_ci     */
53261847f8eSopenharmony_ci    CM_PADDING_PSS = 1,
53361847f8eSopenharmony_ci
53461847f8eSopenharmony_ci    /**
53561847f8eSopenharmony_ci     * Indicates that key padding is PKCS1_V1_5.
53661847f8eSopenharmony_ci     *
53761847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
53861847f8eSopenharmony_ci     * @since 11
53961847f8eSopenharmony_ci     */
54061847f8eSopenharmony_ci    CM_PADDING_PKCS1_V1_5 = 2
54161847f8eSopenharmony_ci  }
54261847f8eSopenharmony_ci
54361847f8eSopenharmony_ci  /**
54461847f8eSopenharmony_ci   * Provides the CMSignatureSpec type.
54561847f8eSopenharmony_ci   *
54661847f8eSopenharmony_ci   * @typedef CMSignatureSpec
54761847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
54861847f8eSopenharmony_ci   * @since 11
54961847f8eSopenharmony_ci   */
55061847f8eSopenharmony_ci  export interface CMSignatureSpec {
55161847f8eSopenharmony_ci    /**
55261847f8eSopenharmony_ci     * Indicates the key purpose of CMSignatureSpec.
55361847f8eSopenharmony_ci     *
55461847f8eSopenharmony_ci     * @type { CmKeyPurpose }
55561847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
55661847f8eSopenharmony_ci     * @since 11
55761847f8eSopenharmony_ci     */
55861847f8eSopenharmony_ci    purpose: CmKeyPurpose;
55961847f8eSopenharmony_ci
56061847f8eSopenharmony_ci    /**
56161847f8eSopenharmony_ci     * Indicates the key padding of CMSignatureSpec.
56261847f8eSopenharmony_ci     *
56361847f8eSopenharmony_ci     * @type { ?CmKeyPadding }
56461847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
56561847f8eSopenharmony_ci     * @since 11
56661847f8eSopenharmony_ci     */
56761847f8eSopenharmony_ci    padding?: CmKeyPadding;
56861847f8eSopenharmony_ci
56961847f8eSopenharmony_ci    /**
57061847f8eSopenharmony_ci     * Indicates the key digest of CMSignatureSpec.
57161847f8eSopenharmony_ci     *
57261847f8eSopenharmony_ci     * @type { ?CmKeyDigest }
57361847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
57461847f8eSopenharmony_ci     * @since 11
57561847f8eSopenharmony_ci     */
57661847f8eSopenharmony_ci    digest?: CmKeyDigest;
57761847f8eSopenharmony_ci  }
57861847f8eSopenharmony_ci
57961847f8eSopenharmony_ci  /**
58061847f8eSopenharmony_ci   * Provides the CMHandle type.
58161847f8eSopenharmony_ci   *
58261847f8eSopenharmony_ci   * @typedef CMHandle
58361847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
58461847f8eSopenharmony_ci   * @since 11
58561847f8eSopenharmony_ci   */
58661847f8eSopenharmony_ci  export interface CMHandle {
58761847f8eSopenharmony_ci    /**
58861847f8eSopenharmony_ci     * Indicates the handle .
58961847f8eSopenharmony_ci     *
59061847f8eSopenharmony_ci     * @type { Uint8Array }
59161847f8eSopenharmony_ci     * @syscap SystemCapability.Security.CertificateManager
59261847f8eSopenharmony_ci     * @since 11
59361847f8eSopenharmony_ci     */
59461847f8eSopenharmony_ci    handle: Uint8Array;
59561847f8eSopenharmony_ci  }
59661847f8eSopenharmony_ci
59761847f8eSopenharmony_ci  /**
59861847f8eSopenharmony_ci   * Install private application certificate.
59961847f8eSopenharmony_ci   *
60061847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
60161847f8eSopenharmony_ci   * @param { Uint8Array } keystore - Indicates the keystore file with key pair and certificate.
60261847f8eSopenharmony_ci   * @param { string } keystorePwd - Indicates the password of keystore file.
60361847f8eSopenharmony_ci   * @param { string } certAlias - Indicates the certificate name inputted by the user.
60461847f8eSopenharmony_ci   * @param { AsyncCallback<CMResult> } callback - The callback of installPrivateCertificate.
60561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
60661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
60761847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
60861847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
60961847f8eSopenharmony_ci   * @throws { BusinessError } 17500003 - The keystore is in an invalid format or the keystore password is incorrect.
61061847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
61161847f8eSopenharmony_ci   * @since 11
61261847f8eSopenharmony_ci   */
61361847f8eSopenharmony_ci  /**
61461847f8eSopenharmony_ci   * Install private application certificate.
61561847f8eSopenharmony_ci   *
61661847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
61761847f8eSopenharmony_ci   * @param { Uint8Array } keystore - Indicates the keystore file with key pair and certificate.
61861847f8eSopenharmony_ci   * @param { string } keystorePwd - Indicates the password of keystore file.
61961847f8eSopenharmony_ci   * @param { string } certAlias - Indicates the certificate name inputted by the user.
62061847f8eSopenharmony_ci   * @param { AsyncCallback<CMResult> } callback - The callback of installPrivateCertificate.
62161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
62261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
62361847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
62461847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
62561847f8eSopenharmony_ci   * @throws { BusinessError } 17500003 - The keystore is in an invalid format or the keystore password is incorrect.
62661847f8eSopenharmony_ci   * @throws { BusinessError } 17500004 - The number of certificates or credentials reaches the maximum allowed.
62761847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
62861847f8eSopenharmony_ci   * @since 12
62961847f8eSopenharmony_ci   */
63061847f8eSopenharmony_ci  function installPrivateCertificate(
63161847f8eSopenharmony_ci    keystore: Uint8Array,
63261847f8eSopenharmony_ci    keystorePwd: string,
63361847f8eSopenharmony_ci    certAlias: string,
63461847f8eSopenharmony_ci    callback: AsyncCallback<CMResult>
63561847f8eSopenharmony_ci  ): void;
63661847f8eSopenharmony_ci
63761847f8eSopenharmony_ci  /**
63861847f8eSopenharmony_ci   * Install private application certificate.
63961847f8eSopenharmony_ci   *
64061847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
64161847f8eSopenharmony_ci   * @param { Uint8Array } keystore - Indicates the keystore file with key pair and certificate.
64261847f8eSopenharmony_ci   * @param { string } keystorePwd - Indicates the password of keystore file.
64361847f8eSopenharmony_ci   * @param { string } certAlias - Indicates the certificate name inputted by the user.
64461847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
64561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
64661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
64761847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
64861847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
64961847f8eSopenharmony_ci   * @throws { BusinessError } 17500003 - The keystore is in an invalid format or the keystore password is incorrect.
65061847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
65161847f8eSopenharmony_ci   * @since 11
65261847f8eSopenharmony_ci   */
65361847f8eSopenharmony_ci  /**
65461847f8eSopenharmony_ci   * Install private application certificate.
65561847f8eSopenharmony_ci   *
65661847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
65761847f8eSopenharmony_ci   * @param { Uint8Array } keystore - Indicates the keystore file with key pair and certificate.
65861847f8eSopenharmony_ci   * @param { string } keystorePwd - Indicates the password of keystore file.
65961847f8eSopenharmony_ci   * @param { string } certAlias - Indicates the certificate name inputted by the user.
66061847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
66161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
66261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
66361847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
66461847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
66561847f8eSopenharmony_ci   * @throws { BusinessError } 17500003 - The keystore is in an invalid format or the keystore password is incorrect.
66661847f8eSopenharmony_ci   * @throws { BusinessError } 17500004 - The number of certificates or credentials reaches the maximum allowed.
66761847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
66861847f8eSopenharmony_ci   * @since 12
66961847f8eSopenharmony_ci   */
67061847f8eSopenharmony_ci  function installPrivateCertificate(keystore: Uint8Array, keystorePwd: string, certAlias: string): Promise<CMResult>;
67161847f8eSopenharmony_ci
67261847f8eSopenharmony_ci  /**
67361847f8eSopenharmony_ci   * Uninstall the specified normal application certificate.
67461847f8eSopenharmony_ci   *
67561847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
67661847f8eSopenharmony_ci   * @param { string } keyUri - Indicates key's name.
67761847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - The callback of uninstallPrivateCertificate.
67861847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
67961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
68061847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
68161847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
68261847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
68361847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
68461847f8eSopenharmony_ci   * @since 11
68561847f8eSopenharmony_ci   */
68661847f8eSopenharmony_ci  function uninstallPrivateCertificate(keyUri: string, callback: AsyncCallback<void>): void;
68761847f8eSopenharmony_ci
68861847f8eSopenharmony_ci  /**
68961847f8eSopenharmony_ci   * Uninstall the specified normal application certificate.
69061847f8eSopenharmony_ci   *
69161847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
69261847f8eSopenharmony_ci   * @param { string } keyUri - Indicates key's name.
69361847f8eSopenharmony_ci   * @returns { Promise<void> } The promise returned by the function.
69461847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
69561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
69661847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
69761847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
69861847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
69961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
70061847f8eSopenharmony_ci   * @since 11
70161847f8eSopenharmony_ci   */
70261847f8eSopenharmony_ci  function uninstallPrivateCertificate(keyUri: string): Promise<void>;
70361847f8eSopenharmony_ci
70461847f8eSopenharmony_ci  /**
70561847f8eSopenharmony_ci   * Get a list of all applications private certificates.
70661847f8eSopenharmony_ci   *
70761847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER and ohos.permission.ACCESS_CERT_MANAGER_INTERNAL
70861847f8eSopenharmony_ci   * @param { AsyncCallback<CMResult> } callback - The callback of getAllAppPrivateCertificates.
70961847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
71061847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
71161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
71261847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
71361847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
71461847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
71561847f8eSopenharmony_ci   * @systemapi
71661847f8eSopenharmony_ci   * @since 11
71761847f8eSopenharmony_ci   */
71861847f8eSopenharmony_ci  function getAllAppPrivateCertificates(callback: AsyncCallback<CMResult>): void;
71961847f8eSopenharmony_ci
72061847f8eSopenharmony_ci  /**
72161847f8eSopenharmony_ci   * Get a list of all applications private certificates.
72261847f8eSopenharmony_ci   *
72361847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER and ohos.permission.ACCESS_CERT_MANAGER_INTERNAL
72461847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
72561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
72661847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
72761847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
72861847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
72961847f8eSopenharmony_ci   * @systemapi
73061847f8eSopenharmony_ci   * @since 11
73161847f8eSopenharmony_ci   */
73261847f8eSopenharmony_ci  function getAllAppPrivateCertificates(): Promise<CMResult>;
73361847f8eSopenharmony_ci
73461847f8eSopenharmony_ci  /**
73561847f8eSopenharmony_ci   * Get the detail of private application certificate.
73661847f8eSopenharmony_ci   *
73761847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
73861847f8eSopenharmony_ci   * @param { string } keyUri - Indicates key's name.
73961847f8eSopenharmony_ci   * @param { AsyncCallback<CMResult> } callback - The callback of getPrivateCertificate.
74061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
74161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
74261847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
74361847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
74461847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
74561847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
74661847f8eSopenharmony_ci   * @since 11
74761847f8eSopenharmony_ci   */
74861847f8eSopenharmony_ci  function getPrivateCertificate(keyUri: string, callback: AsyncCallback<CMResult>): void;
74961847f8eSopenharmony_ci
75061847f8eSopenharmony_ci  /**
75161847f8eSopenharmony_ci   * Get the detail of private application certificate.
75261847f8eSopenharmony_ci   *
75361847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
75461847f8eSopenharmony_ci   * @param { string } keyUri - Indicates key's name.
75561847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
75661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
75761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
75861847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
75961847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
76061847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
76161847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
76261847f8eSopenharmony_ci   * @since 11
76361847f8eSopenharmony_ci   */
76461847f8eSopenharmony_ci  function getPrivateCertificate(keyUri: string): Promise<CMResult>;
76561847f8eSopenharmony_ci
76661847f8eSopenharmony_ci  /**
76761847f8eSopenharmony_ci   * Init operation for signing and verifying etc.
76861847f8eSopenharmony_ci   *
76961847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
77061847f8eSopenharmony_ci   * @param { string } authUri - Indicates the authorization relationship between application and application certificate.
77161847f8eSopenharmony_ci   * @param { CMSignatureSpec } spec - Indicates the properties of the signature and verification.
77261847f8eSopenharmony_ci   * @param { AsyncCallback<CMHandle> } callback - The callback of init.
77361847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
77461847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
77561847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
77661847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
77761847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
77861847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
77961847f8eSopenharmony_ci   * @since 11
78061847f8eSopenharmony_ci   */
78161847f8eSopenharmony_ci  /**
78261847f8eSopenharmony_ci   * Init operation for signing and verifying etc.
78361847f8eSopenharmony_ci   *
78461847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
78561847f8eSopenharmony_ci   * @param { string } authUri - Indicates the authorization relationship between application and application certificate.
78661847f8eSopenharmony_ci   * @param { CMSignatureSpec } spec - Indicates the properties of the signature and verification.
78761847f8eSopenharmony_ci   * @param { AsyncCallback<CMHandle> } callback - The callback of init.
78861847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
78961847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
79061847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
79161847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
79261847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
79361847f8eSopenharmony_ci   * @throws { BusinessError } 17500005 - The application is not authorized by the user.
79461847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
79561847f8eSopenharmony_ci   * @since 12
79661847f8eSopenharmony_ci   */
79761847f8eSopenharmony_ci  function init(authUri: string, spec: CMSignatureSpec, callback: AsyncCallback<CMHandle>): void;
79861847f8eSopenharmony_ci
79961847f8eSopenharmony_ci  /**
80061847f8eSopenharmony_ci   * Init operation for signing and verifying etc.
80161847f8eSopenharmony_ci   *
80261847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
80361847f8eSopenharmony_ci   * @param { string } authUri - Indicates the authorization relationship between application and application certificate.
80461847f8eSopenharmony_ci   * @param { CMSignatureSpec } spec - Indicates the properties of the signature and verification.
80561847f8eSopenharmony_ci   * @returns { Promise<CMHandle> } The promise returned by the function.
80661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
80761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
80861847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
80961847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
81061847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
81161847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
81261847f8eSopenharmony_ci   * @since 11
81361847f8eSopenharmony_ci   */
81461847f8eSopenharmony_ci  /**
81561847f8eSopenharmony_ci   * Init operation for signing and verifying etc.
81661847f8eSopenharmony_ci   *
81761847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
81861847f8eSopenharmony_ci   * @param { string } authUri - Indicates the authorization relationship between application and application certificate.
81961847f8eSopenharmony_ci   * @param { CMSignatureSpec } spec - Indicates the properties of the signature and verification.
82061847f8eSopenharmony_ci   * @returns { Promise<CMHandle> } The promise returned by the function.
82161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
82261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
82361847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
82461847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
82561847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
82661847f8eSopenharmony_ci   * @throws { BusinessError } 17500005 - The application is not authorized by the user.
82761847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
82861847f8eSopenharmony_ci   * @since 12
82961847f8eSopenharmony_ci   */
83061847f8eSopenharmony_ci  function init(authUri: string, spec: CMSignatureSpec): Promise<CMHandle>;
83161847f8eSopenharmony_ci
83261847f8eSopenharmony_ci  /**
83361847f8eSopenharmony_ci   * Update operation for signing and verifying etc.
83461847f8eSopenharmony_ci   *
83561847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
83661847f8eSopenharmony_ci   * @param { Uint8Array } handle - Indicates the handle of the init operation.
83761847f8eSopenharmony_ci   * @param { Uint8Array } data - Indicates the input value.
83861847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - The callback of update.
83961847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
84061847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
84161847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
84261847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
84361847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
84461847f8eSopenharmony_ci   * @since 11
84561847f8eSopenharmony_ci   */
84661847f8eSopenharmony_ci  function update(handle: Uint8Array, data: Uint8Array, callback: AsyncCallback<void>): void;
84761847f8eSopenharmony_ci
84861847f8eSopenharmony_ci  /**
84961847f8eSopenharmony_ci   * Update operation for signing and verifying etc.
85061847f8eSopenharmony_ci   *
85161847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
85261847f8eSopenharmony_ci   * @param { Uint8Array } handle - Indicates the handle of the init operation.
85361847f8eSopenharmony_ci   * @param { Uint8Array } data - Indicates the input value.
85461847f8eSopenharmony_ci   * @returns { Promise<void> } The promise returned by the function.
85561847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
85661847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
85761847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
85861847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
85961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
86061847f8eSopenharmony_ci   * @since 11
86161847f8eSopenharmony_ci   */
86261847f8eSopenharmony_ci  function update(handle: Uint8Array, data: Uint8Array): Promise<void>;
86361847f8eSopenharmony_ci
86461847f8eSopenharmony_ci  /**
86561847f8eSopenharmony_ci   * Finish operation for signing and verifying etc.
86661847f8eSopenharmony_ci   *
86761847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
86861847f8eSopenharmony_ci   * @param { Uint8Array } handle - Indicates the handle of the init operation.
86961847f8eSopenharmony_ci   * @param { AsyncCallback<CMResult> } callback - The callback of finish.
87061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
87161847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
87261847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
87361847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
87461847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
87561847f8eSopenharmony_ci   * @since 11
87661847f8eSopenharmony_ci   */
87761847f8eSopenharmony_ci  function finish(handle: Uint8Array, callback: AsyncCallback<CMResult>): void;
87861847f8eSopenharmony_ci
87961847f8eSopenharmony_ci  /**
88061847f8eSopenharmony_ci   * Finish operation for signing and verifying etc.
88161847f8eSopenharmony_ci   *
88261847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
88361847f8eSopenharmony_ci   * @param { Uint8Array } handle - Indicates the handle of the init operation.
88461847f8eSopenharmony_ci   * @param { Uint8Array } signature - Indicates the sign data.
88561847f8eSopenharmony_ci   * @param { AsyncCallback<CMResult> } callback - The callback of finish.
88661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
88761847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
88861847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
88961847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
89061847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
89161847f8eSopenharmony_ci   * @since 11
89261847f8eSopenharmony_ci   */
89361847f8eSopenharmony_ci  function finish(handle: Uint8Array, signature: Uint8Array, callback: AsyncCallback<CMResult>): void;
89461847f8eSopenharmony_ci
89561847f8eSopenharmony_ci  /**
89661847f8eSopenharmony_ci   * Finish operation for signing and verifying etc.
89761847f8eSopenharmony_ci   *
89861847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
89961847f8eSopenharmony_ci   * @param { Uint8Array } handle - Indicates the handle of the init operation.
90061847f8eSopenharmony_ci   * @param { Uint8Array } [options] signature - Indicates the sign data.
90161847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
90261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
90361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
90461847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
90561847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
90661847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
90761847f8eSopenharmony_ci   * @since 11
90861847f8eSopenharmony_ci   */
90961847f8eSopenharmony_ci  function finish(handle: Uint8Array, signature?: Uint8Array): Promise<CMResult>;
91061847f8eSopenharmony_ci
91161847f8eSopenharmony_ci  /**
91261847f8eSopenharmony_ci   * Abort operation for signing and verifying etc.
91361847f8eSopenharmony_ci   *
91461847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
91561847f8eSopenharmony_ci   * @param { Uint8Array } handle - Indicates the handle of the init operation.
91661847f8eSopenharmony_ci   * @param { AsyncCallback<void> } callback - The callback of abort.
91761847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
91861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
91961847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
92061847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
92161847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
92261847f8eSopenharmony_ci   * @since 11
92361847f8eSopenharmony_ci   */
92461847f8eSopenharmony_ci  function abort(handle: Uint8Array, callback: AsyncCallback<void>): void;
92561847f8eSopenharmony_ci
92661847f8eSopenharmony_ci  /**
92761847f8eSopenharmony_ci   * Abort operation for signing and verifying etc.
92861847f8eSopenharmony_ci   *
92961847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
93061847f8eSopenharmony_ci   * @param { Uint8Array } handle - Indicates the handle of the init operation.
93161847f8eSopenharmony_ci   * @returns { Promise<void> } The promise returned by the function.
93261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
93361847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
93461847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
93561847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
93661847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
93761847f8eSopenharmony_ci   * @since 11
93861847f8eSopenharmony_ci   */
93961847f8eSopenharmony_ci  function abort(handle: Uint8Array): Promise<void>;
94061847f8eSopenharmony_ci
94161847f8eSopenharmony_ci  /**
94261847f8eSopenharmony_ci   * Get the detail of public application certificate.
94361847f8eSopenharmony_ci   *
94461847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
94561847f8eSopenharmony_ci   * @param { string } keyUri - Indicates the key's name.
94661847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
94761847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
94861847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
94961847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
95061847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
95161847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
95261847f8eSopenharmony_ci   * @throws { BusinessError } 17500005 - The application is not authorized by the user.
95361847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
95461847f8eSopenharmony_ci   * @since 12
95561847f8eSopenharmony_ci   */
95661847f8eSopenharmony_ci  function getPublicCertificate(keyUri: string): Promise<CMResult>;
95761847f8eSopenharmony_ci
95861847f8eSopenharmony_ci  /**:
95961847f8eSopenharmony_ci   * Whether the current application is authorized by the specified public application certificate.
96061847f8eSopenharmony_ci   *
96161847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
96261847f8eSopenharmony_ci   * @param { string } keyUri - Indicates the key's name.
96361847f8eSopenharmony_ci   * @returns { Promise<boolean> } The promise returned by the function.
96461847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
96561847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
96661847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
96761847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
96861847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
96961847f8eSopenharmony_ci   * @since 12
97061847f8eSopenharmony_ci   */
97161847f8eSopenharmony_ci  function isAuthorizedApp(keyUri: string): Promise<boolean>;
97261847f8eSopenharmony_ci
97361847f8eSopenharmony_ci  /**
97461847f8eSopenharmony_ci   * Get a list of all user trusted CA certificates.
97561847f8eSopenharmony_ci   *
97661847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
97761847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
97861847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
97961847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
98061847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
98161847f8eSopenharmony_ci   * @since 12
98261847f8eSopenharmony_ci   */
98361847f8eSopenharmony_ci  function getAllUserTrustedCertificates(): Promise<CMResult>;
98461847f8eSopenharmony_ci
98561847f8eSopenharmony_ci  /**
98661847f8eSopenharmony_ci   * Get the detail of user trusted CA certificate.
98761847f8eSopenharmony_ci   *
98861847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
98961847f8eSopenharmony_ci   * @param { string } certUri - Indicates the certificate's name.
99061847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
99161847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
99261847f8eSopenharmony_ci   * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;
99361847f8eSopenharmony_ci   * <br>2. Incorrect parameter types; 3. Parameter verification failed.
99461847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
99561847f8eSopenharmony_ci   * @throws { BusinessError } 17500002 - The certificate does not exist.
99661847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
99761847f8eSopenharmony_ci   * @since 12
99861847f8eSopenharmony_ci   */
99961847f8eSopenharmony_ci  function getUserTrustedCertificate(certUri: string): Promise<CMResult>;
100061847f8eSopenharmony_ci
100161847f8eSopenharmony_ci  /**
100261847f8eSopenharmony_ci   * Get a list of all system application certificates, such as WLAN, VPN certificate.
100361847f8eSopenharmony_ci   *
100461847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
100561847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The promise returned by the function.
100661847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
100761847f8eSopenharmony_ci   * @throws { BusinessError } 202 - Permission verification failed. A non-system application calls a system API.
100861847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
100961847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
101061847f8eSopenharmony_ci   * @systemapi
101161847f8eSopenharmony_ci   * @since 12
101261847f8eSopenharmony_ci   */
101361847f8eSopenharmony_ci  function getAllSystemAppCertificates(): Promise<CMResult>;
101461847f8eSopenharmony_ci
101561847f8eSopenharmony_ci  /**
101661847f8eSopenharmony_ci   * Get all private certificates installed by the application.
101761847f8eSopenharmony_ci   *
101861847f8eSopenharmony_ci   * @permission ohos.permission.ACCESS_CERT_MANAGER
101961847f8eSopenharmony_ci   * @returns { Promise<CMResult> } The private certificates installed by the application.
102061847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission verification failed. The application does not have the permission required to call the API.
102161847f8eSopenharmony_ci   * @throws { BusinessError } 17500001 - Internal error.
102261847f8eSopenharmony_ci   * @syscap SystemCapability.Security.CertificateManager
102361847f8eSopenharmony_ci   * @since 13
102461847f8eSopenharmony_ci   */
102561847f8eSopenharmony_ci  function getPrivateCertificates(): Promise<CMResult>;
102661847f8eSopenharmony_ci}
102761847f8eSopenharmony_ci
102861847f8eSopenharmony_ciexport default certificateManager;
1029