1# In this file, every section corresponds to a header file.
2# A corresponding binding file will be created in $OUT_DIR.
3
4[nss_ssl]
5types = [
6    "HpkeSymmetricSuite",
7    "PRCList",
8    "PRUint16",
9    "PRUint64",
10    "PRUint8",
11    "SECStatus",
12    "SSLAeadContext",
13    "SSLExtensionHandler",
14    "SSLExtensionType",
15    "SSLExtensionWriter",
16    "SSLHelloRetryRequestAction",
17    "SSLHelloRetryRequestCallback",
18    "SSLNamedGroup",
19    "SSLProtocolVariant",
20    "SSLRecordWriteCallback",
21    "SSLResumptionTokenCallback",
22    "SSLResumptionTokenInfo",
23    "SSLSecretCallback",
24    "SSLSignatureScheme",
25    "SSLTimeFunc",
26]
27functions = [
28    "SSL_AlertSentCallback",
29    "SSL_AuthCertificateComplete",
30    "SSL_AuthCertificateHook",
31    "SSL_CipherPrefSet",
32    "SSL_ConfigServerCert",
33    "SSL_ConfigServerSessionIDCache",
34    "SSL_DestroyResumptionTokenInfo",
35    "SSL_GetChannelInfo",
36    "SSL_GetExperimentalAPI",
37    "SSL_GetImplementedCiphers",
38    "SSL_GetNextProto",
39    "SSL_GetNumImplementedCiphers",
40    "SSL_GetPreliminaryChannelInfo",
41    "SSL_GetResumptionTokenInfo",
42    "SSL_ForceHandshake",
43    "SSL_ImportFD",
44    "SSL_NamedGroupConfig",
45    "SSL_OptionSet",
46    "SSL_OptionGetDefault",
47    "SSL_PeerCertificate",
48    "SSL_PeerCertificateChain",
49    "SSL_PeerSignedCertTimestamps",
50    "SSL_PeerStapledOCSPResponses",
51    "SSL_ResetHandshake",
52    "SSL_SetNextProtoNego",
53    "SSL_SetURL",
54    "SSL_VersionRangeSet",
55]
56enums = [
57    "HpkeAeadId",
58    "HpkeKdfId",
59    "SSLAuthType",
60    "SSLCipherAlgorithm",
61    "SSLCompressionMethod",
62    "SSLContentType",
63    "SSLExtensionType",
64    "SSLHandshakeType",
65    "SSLHelloRetryRequestAction",
66    "SSLKEAType",
67    "SSLMACAlgorithm",
68    "SSLNamedGroup",
69    "SSLNextProtoState",
70    "SSLProtocolVariant",
71    "SSLSecretDirection",
72    "SSLSignatureScheme",
73    "SECStatus",
74]
75variables = [
76    "SSL_LIBRARY_VERSION_TLS_\\d_\\d",
77    "SSL_NumImplementedCiphers",
78    "ssl_preinfo_.*",
79]
80opaque = [
81    "CERTCertificate",
82    "PK11SymKey",
83    "PLArenaPool",
84    "PRFileDesc",
85    "SECKEYPrivateKey",
86    "SECKEYPublicKey",
87    "SSLExtraServerCertData",
88]
89
90[nss_sslopt]
91variables = [
92    "SSL_REQUEST_CERTIFICATE",
93    "SSL_REQUIRE_CERTIFICATE",
94    "SSL_NO_LOCKS",
95    "SSL_ENABLE_SESSION_TICKETS",
96    "SSL_ENABLE_OCSP_STAPLING",
97    "SSL_ENABLE_ALPN",
98    "SSL_ENABLE_EXTENDED_MASTER_SECRET",
99    "SSL_ENABLE_SIGNED_CERT_TIMESTAMPS",
100    "SSL_ENABLE_0RTT_DATA",
101    "SSL_RECORD_SIZE_LIMIT",
102    "SSL_ENABLE_TLS13_COMPAT_MODE",
103    "SSL_ENABLE_HELLO_DOWNGRADE_CHECK",
104    "SSL_SUPPRESS_END_OF_EARLY_DATA",
105]
106
107[nss_ciphers]
108variables = ["TLS_.*"]
109exclude = [
110    ".*_(?:EXPORT(?:1024)?|anon|DES|RC4)_.*",
111    ".*_(?:MD5|NULL_SHA)",
112]
113
114[nss_secerr]
115types = ["SECErrorCodes"]
116enums = ["SECErrorCodes"]
117
118[nss_sslerr]
119types = ["SSLErrorCodes"]
120enums = ["SSLErrorCodes"]
121
122[nss_init]
123functions = [
124    "NSS_Initialize",
125    "NSS_IsInitialized",
126    "NSS_NoDB_Init",
127    "NSS_SetDomesticPolicy",
128    "NSS_Shutdown",
129    "NSS_VersionCheck",
130]
131variables = [
132    "NSS_INIT_READONLY",
133    "SECMOD_DB",
134]
135
136[nss_p11]
137types = [
138    "CERTCertList",
139    "CERTCertListNode",
140    "CK_ATTRIBUTE_TYPE",
141    "CK_FLAGS",
142    "CK_MECHANISM_TYPE",
143    "HpkeAeadId",
144    "HpkeKdfId",
145    "HpkeKemId",
146    "SECItem",
147    "SECItemArray",
148]
149functions = [
150    "CERT_DestroyCertificate",
151    "CERT_DestroyCertList",
152    "CERT_GetCertificateDer",
153    "PK11_Encrypt",
154    "PK11_ExtractKeyValue",
155    "PK11_FindCertFromNickname",
156    "PK11_FindKeyByAnyCert",
157    "PK11_FreeSlot",
158    "PK11_FreeSymKey",
159    "PK11_GenerateKeyPairWithOpFlags",
160    "PK11_GenerateRandom",
161    "PK11_GetBlockSize",
162    "PK11_GetInternalSlot",
163    "PK11_GetKeyData",
164    "PK11_GetMechanism",
165    "PK11_HPKE_Serialize",
166    "PK11_ImportDataKey",
167    "PK11_ReadRawAttribute",
168    "PK11_ReferenceSymKey",
169    "SECITEM_FreeItem",
170    "SECKEY_CopyPrivateKey",
171    "SECKEY_CopyPublicKey",
172    "SECKEY_DestroyPrivateKey",
173    "SECKEY_DestroyPublicKey",
174    "SECOID_FindOIDByTag",
175]
176enums = [
177    "HpkeAeadId",
178    "HpkeKdfId",
179    "HpkeKemId",
180    "PK11ObjectType",
181    "PK11Origin",
182    "SECItemType",
183    "SECOidTag",
184]
185opaque = [
186    "CERTCertificate",
187    "PK11SlotInfo",
188    "PK11SymKey",
189    "SECKEYPrivateKey",
190    "SECKEYPublicKey",
191]
192variables = [
193    "CKA_DERIVE",
194    "CKA_VALUE",
195    "CKF_DERIVE",
196    "CKM_AES_ECB",
197    "CKM_AES_GCM",
198    "CKM_EC_KEY_PAIR_GEN",
199    "CKM_HKDF_DERIVE",
200    "CKM_INVALID_MECHANISM",
201    "CKM_NSS_CHACHA20_CTR",
202    "CKM_NSS_CHACHA20_POLY1305",
203    "PK11_ATTR_INSENSITIVE",
204    "PK11_ATTR_PRIVATE",
205    "PK11_ATTR_PUBLIC",
206    "PK11_ATTR_SENSITIVE",
207    "PK11_ATTR_SESSION",
208    "SEC_ASN1_OBJECT_ID",
209]
210
211[nspr_err]
212# NSPR doesn't use an enum for errors, so we have to pull in everything in the header file.
213# Specifying no types, functions, or variables does that, but then exclude some.
214exclude = [
215    "nspr_.*",
216    "PR_MAX_ERROR",
217    "ERROR_TABLE_BASE_nspr"
218]
219
220[nspr_error]
221functions = [
222    "PR_ErrorToName",
223    "PR_ErrorToString",
224    "PR_GetError",
225    "PR_SetError",
226]
227variables = [
228    "PR_LANGUAGE_I_DEFAULT",
229]
230
231[nspr_io]
232types = ["PRIOMethods"]
233functions = [
234    "PR_Close",
235    "PR_CreateIOLayerStub",
236    "PR_GetUniqueIdentity",
237]
238variables = [
239    "PR_AF_INET",
240]
241# opaque is for the stuff we don't plan to use, but we need for function signatures.
242opaque = [
243    "PRFileInfo",
244    "PRFileInfo64",
245    "PRFilePrivate",
246    "PRIOVec",
247    "PRSendFileData",
248]
249enums = [
250    "PRDescType",
251    "PRStatus",
252    "PRSeekWhence",
253    "PRSockOption",
254    "PRTransmitFileFlags",
255]
256
257[nspr_time]
258types = ["PRTime"]
259functions = ["PR_Now"]
260
261[mozpkix]
262cplusplus = true
263types = ["mozilla::pkix::ErrorCode"]
264enums = ["mozilla::pkix::ErrorCode"]
265