Coverage Report

Created: 2026-08-08 07:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.62/src/nid.rs
Line
Count
Source
1
//! A collection of numerical identifiers for OpenSSL objects.
2
use libc::{c_char, c_int};
3
4
use std::ffi::CStr;
5
use std::ffi::CString;
6
use std::str;
7
8
use crate::cvt_p;
9
use crate::error::ErrorStack;
10
use openssl_macros::corresponds;
11
12
/// The digest and public-key algorithms associated with a signature.
13
pub struct SignatureAlgorithms {
14
    /// The signature's digest.
15
    ///
16
    /// If the signature does not specify a digest, this will be `NID::UNDEF`.
17
    pub digest: Nid,
18
19
    /// The signature's public-key.
20
    pub pkey: Nid,
21
}
22
23
/// A numerical identifier for an OpenSSL object.
24
///
25
/// Objects in OpenSSL can have a short name, a long name, and
26
/// a numerical identifier (NID). For convenience, objects
27
/// are usually represented in source code using these numeric
28
/// identifiers.
29
///
30
/// Users should generally not need to create new `Nid`s.
31
///
32
/// # Examples
33
///
34
/// To view the integer representation of a `Nid`:
35
///
36
/// ```
37
/// use openssl::nid::Nid;
38
///
39
/// assert!(Nid::AES_256_GCM.as_raw() == 901);
40
/// ```
41
///
42
/// # External Documentation
43
///
44
/// The following documentation provides context about `Nid`s and their usage
45
/// in OpenSSL.
46
///
47
/// - [Obj_nid2obj](https://www.openssl.org/docs/manmaster/crypto/OBJ_create.html)
48
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
49
pub struct Nid(c_int);
50
51
#[allow(non_snake_case)]
52
impl Nid {
53
    /// Create a `Nid` from an integer representation.
54
0
    pub const fn from_raw(raw: c_int) -> Nid {
55
0
        Nid(raw)
56
0
    }
57
58
    /// Return the integer representation of a `Nid`.
59
    #[allow(clippy::trivially_copy_pass_by_ref)]
60
0
    pub const fn as_raw(&self) -> c_int {
61
0
        self.0
62
0
    }
63
64
    /// Creates a new `Nid` for the `oid` with short name `sn` and long name `ln`.
65
    #[corresponds(OBJ_create)]
66
0
    pub fn create(oid: &str, sn: &str, ln: &str) -> Result<Nid, ErrorStack> {
67
        unsafe {
68
0
            ffi::init();
69
0
            let oid = CString::new(oid).unwrap();
70
0
            let sn = CString::new(sn).unwrap();
71
0
            let ln = CString::new(ln).unwrap();
72
0
            let raw = ffi::OBJ_create(oid.as_ptr(), sn.as_ptr(), ln.as_ptr());
73
0
            if raw == ffi::NID_undef {
74
0
                Err(ErrorStack::get())
75
            } else {
76
0
                Ok(Nid(raw))
77
            }
78
        }
79
0
    }
80
81
    /// Returns the `Nid`s of the digest and public key algorithms associated with a signature ID.
82
    ///
83
    /// This corresponds to `OBJ_find_sigid_algs`.
84
    #[corresponds(OBJ_find_sigid_algs)]
85
    #[allow(clippy::trivially_copy_pass_by_ref)]
86
0
    pub fn signature_algorithms(&self) -> Option<SignatureAlgorithms> {
87
        unsafe {
88
0
            let mut digest = 0;
89
0
            let mut pkey = 0;
90
0
            if ffi::OBJ_find_sigid_algs(self.0, &mut digest, &mut pkey) == 1 {
91
0
                Some(SignatureAlgorithms {
92
0
                    digest: Nid(digest),
93
0
                    pkey: Nid(pkey),
94
0
                })
95
            } else {
96
0
                None
97
            }
98
        }
99
0
    }
100
101
    /// Returns the string representation of a `Nid` (long).
102
    #[corresponds(OBJ_nid2ln)]
103
    #[allow(clippy::trivially_copy_pass_by_ref)]
104
0
    pub fn long_name(&self) -> Result<&'static str, ErrorStack> {
105
        unsafe {
106
0
            cvt_p(ffi::OBJ_nid2ln(self.0) as *mut c_char)
107
0
                .map(|nameptr| str::from_utf8(CStr::from_ptr(nameptr).to_bytes()).unwrap())
108
        }
109
0
    }
110
111
    /// Returns the string representation of a `Nid` (short).
112
    #[corresponds(OBJ_nid2sn)]
113
    #[allow(clippy::trivially_copy_pass_by_ref)]
114
0
    pub fn short_name(&self) -> Result<&'static str, ErrorStack> {
115
        unsafe {
116
0
            cvt_p(ffi::OBJ_nid2sn(self.0) as *mut c_char)
117
0
                .map(|nameptr| str::from_utf8(CStr::from_ptr(nameptr).to_bytes()).unwrap())
118
        }
119
0
    }
120
121
    pub const UNDEF: Nid = Nid(ffi::NID_undef);
122
    pub const ITU_T: Nid = Nid(ffi::NID_itu_t);
123
    #[cfg(not(boringssl))]
124
    pub const CCITT: Nid = Nid(ffi::NID_ccitt);
125
    pub const ISO: Nid = Nid(ffi::NID_iso);
126
    pub const JOINT_ISO_ITU_T: Nid = Nid(ffi::NID_joint_iso_itu_t);
127
    #[cfg(not(boringssl))]
128
    pub const JOINT_ISO_CCITT: Nid = Nid(ffi::NID_joint_iso_ccitt);
129
    pub const MEMBER_BODY: Nid = Nid(ffi::NID_member_body);
130
    pub const IDENTIFIED_ORGANIZATION: Nid = Nid(ffi::NID_identified_organization);
131
    pub const HMAC_MD5: Nid = Nid(ffi::NID_hmac_md5);
132
    pub const HMAC_SHA1: Nid = Nid(ffi::NID_hmac_sha1);
133
    pub const CERTICOM_ARC: Nid = Nid(ffi::NID_certicom_arc);
134
    pub const INTERNATIONAL_ORGANIZATIONS: Nid = Nid(ffi::NID_international_organizations);
135
    pub const WAP: Nid = Nid(ffi::NID_wap);
136
    pub const WAP_WSG: Nid = Nid(ffi::NID_wap_wsg);
137
    pub const SELECTED_ATTRIBUTE_TYPES: Nid = Nid(ffi::NID_selected_attribute_types);
138
    pub const CLEARANCE: Nid = Nid(ffi::NID_clearance);
139
    pub const ISO_US: Nid = Nid(ffi::NID_ISO_US);
140
    pub const X9_57: Nid = Nid(ffi::NID_X9_57);
141
    pub const X9CM: Nid = Nid(ffi::NID_X9cm);
142
    pub const DSA: Nid = Nid(ffi::NID_dsa);
143
    pub const DSAWITHSHA1: Nid = Nid(ffi::NID_dsaWithSHA1);
144
    pub const ANSI_X9_62: Nid = Nid(ffi::NID_ansi_X9_62);
145
    pub const X9_62_PRIME_FIELD: Nid = Nid(ffi::NID_X9_62_prime_field);
146
    pub const X9_62_CHARACTERISTIC_TWO_FIELD: Nid = Nid(ffi::NID_X9_62_characteristic_two_field);
147
    pub const X9_62_ID_CHARACTERISTIC_TWO_BASIS: Nid =
148
        Nid(ffi::NID_X9_62_id_characteristic_two_basis);
149
    pub const X9_62_ONBASIS: Nid = Nid(ffi::NID_X9_62_onBasis);
150
    pub const X9_62_TPBASIS: Nid = Nid(ffi::NID_X9_62_tpBasis);
151
    pub const X9_62_PPBASIS: Nid = Nid(ffi::NID_X9_62_ppBasis);
152
    pub const X9_62_ID_ECPUBLICKEY: Nid = Nid(ffi::NID_X9_62_id_ecPublicKey);
153
    pub const X9_62_C2PNB163V1: Nid = Nid(ffi::NID_X9_62_c2pnb163v1);
154
    pub const X9_62_C2PNB163V2: Nid = Nid(ffi::NID_X9_62_c2pnb163v2);
155
    pub const X9_62_C2PNB163V3: Nid = Nid(ffi::NID_X9_62_c2pnb163v3);
156
    pub const X9_62_C2PNB176V1: Nid = Nid(ffi::NID_X9_62_c2pnb176v1);
157
    pub const X9_62_C2TNB191V1: Nid = Nid(ffi::NID_X9_62_c2tnb191v1);
158
    pub const X9_62_C2TNB191V2: Nid = Nid(ffi::NID_X9_62_c2tnb191v2);
159
    pub const X9_62_C2TNB191V3: Nid = Nid(ffi::NID_X9_62_c2tnb191v3);
160
    pub const X9_62_C2ONB191V4: Nid = Nid(ffi::NID_X9_62_c2onb191v4);
161
    pub const X9_62_C2ONB191V5: Nid = Nid(ffi::NID_X9_62_c2onb191v5);
162
    pub const X9_62_C2PNB208W1: Nid = Nid(ffi::NID_X9_62_c2pnb208w1);
163
    pub const X9_62_C2TNB239V1: Nid = Nid(ffi::NID_X9_62_c2tnb239v1);
164
    pub const X9_62_C2TNB239V2: Nid = Nid(ffi::NID_X9_62_c2tnb239v2);
165
    pub const X9_62_C2TNB239V3: Nid = Nid(ffi::NID_X9_62_c2tnb239v3);
166
    pub const X9_62_C2ONB239V4: Nid = Nid(ffi::NID_X9_62_c2onb239v4);
167
    pub const X9_62_C2ONB239V5: Nid = Nid(ffi::NID_X9_62_c2onb239v5);
168
    pub const X9_62_C2PNB272W1: Nid = Nid(ffi::NID_X9_62_c2pnb272w1);
169
    pub const X9_62_C2PNB304W1: Nid = Nid(ffi::NID_X9_62_c2pnb304w1);
170
    pub const X9_62_C2TNB359V1: Nid = Nid(ffi::NID_X9_62_c2tnb359v1);
171
    pub const X9_62_C2PNB368W1: Nid = Nid(ffi::NID_X9_62_c2pnb368w1);
172
    pub const X9_62_C2TNB431R1: Nid = Nid(ffi::NID_X9_62_c2tnb431r1);
173
    pub const X9_62_PRIME192V1: Nid = Nid(ffi::NID_X9_62_prime192v1);
174
    pub const X9_62_PRIME192V2: Nid = Nid(ffi::NID_X9_62_prime192v2);
175
    pub const X9_62_PRIME192V3: Nid = Nid(ffi::NID_X9_62_prime192v3);
176
    pub const X9_62_PRIME239V1: Nid = Nid(ffi::NID_X9_62_prime239v1);
177
    pub const X9_62_PRIME239V2: Nid = Nid(ffi::NID_X9_62_prime239v2);
178
    pub const X9_62_PRIME239V3: Nid = Nid(ffi::NID_X9_62_prime239v3);
179
    pub const X9_62_PRIME256V1: Nid = Nid(ffi::NID_X9_62_prime256v1);
180
    pub const ECDSA_WITH_SHA1: Nid = Nid(ffi::NID_ecdsa_with_SHA1);
181
    pub const ECDSA_WITH_RECOMMENDED: Nid = Nid(ffi::NID_ecdsa_with_Recommended);
182
    pub const ECDSA_WITH_SPECIFIED: Nid = Nid(ffi::NID_ecdsa_with_Specified);
183
    pub const ECDSA_WITH_SHA224: Nid = Nid(ffi::NID_ecdsa_with_SHA224);
184
    pub const ECDSA_WITH_SHA256: Nid = Nid(ffi::NID_ecdsa_with_SHA256);
185
    pub const ECDSA_WITH_SHA384: Nid = Nid(ffi::NID_ecdsa_with_SHA384);
186
    pub const ECDSA_WITH_SHA512: Nid = Nid(ffi::NID_ecdsa_with_SHA512);
187
    pub const SECP112R1: Nid = Nid(ffi::NID_secp112r1);
188
    pub const SECP112R2: Nid = Nid(ffi::NID_secp112r2);
189
    pub const SECP128R1: Nid = Nid(ffi::NID_secp128r1);
190
    pub const SECP128R2: Nid = Nid(ffi::NID_secp128r2);
191
    pub const SECP160K1: Nid = Nid(ffi::NID_secp160k1);
192
    pub const SECP160R1: Nid = Nid(ffi::NID_secp160r1);
193
    pub const SECP160R2: Nid = Nid(ffi::NID_secp160r2);
194
    pub const SECP192K1: Nid = Nid(ffi::NID_secp192k1);
195
    pub const SECP224K1: Nid = Nid(ffi::NID_secp224k1);
196
    pub const SECP224R1: Nid = Nid(ffi::NID_secp224r1);
197
    pub const SECP256K1: Nid = Nid(ffi::NID_secp256k1);
198
    pub const SECP384R1: Nid = Nid(ffi::NID_secp384r1);
199
    pub const SECP521R1: Nid = Nid(ffi::NID_secp521r1);
200
    pub const SECT113R1: Nid = Nid(ffi::NID_sect113r1);
201
    pub const SECT113R2: Nid = Nid(ffi::NID_sect113r2);
202
    pub const SECT131R1: Nid = Nid(ffi::NID_sect131r1);
203
    pub const SECT131R2: Nid = Nid(ffi::NID_sect131r2);
204
    pub const SECT163K1: Nid = Nid(ffi::NID_sect163k1);
205
    pub const SECT163R1: Nid = Nid(ffi::NID_sect163r1);
206
    pub const SECT163R2: Nid = Nid(ffi::NID_sect163r2);
207
    pub const SECT193R1: Nid = Nid(ffi::NID_sect193r1);
208
    pub const SECT193R2: Nid = Nid(ffi::NID_sect193r2);
209
    pub const SECT233K1: Nid = Nid(ffi::NID_sect233k1);
210
    pub const SECT233R1: Nid = Nid(ffi::NID_sect233r1);
211
    pub const SECT239K1: Nid = Nid(ffi::NID_sect239k1);
212
    pub const SECT283K1: Nid = Nid(ffi::NID_sect283k1);
213
    pub const SECT283R1: Nid = Nid(ffi::NID_sect283r1);
214
    pub const SECT409K1: Nid = Nid(ffi::NID_sect409k1);
215
    pub const SECT409R1: Nid = Nid(ffi::NID_sect409r1);
216
    pub const SECT571K1: Nid = Nid(ffi::NID_sect571k1);
217
    pub const SECT571R1: Nid = Nid(ffi::NID_sect571r1);
218
    #[cfg(ossl110)]
219
    pub const BRAINPOOL_P256R1: Nid = Nid(ffi::NID_brainpoolP256r1);
220
    #[cfg(ossl110)]
221
    pub const BRAINPOOL_P320R1: Nid = Nid(ffi::NID_brainpoolP320r1);
222
    #[cfg(ossl110)]
223
    pub const BRAINPOOL_P384R1: Nid = Nid(ffi::NID_brainpoolP384r1);
224
    #[cfg(ossl110)]
225
    pub const BRAINPOOL_P512R1: Nid = Nid(ffi::NID_brainpoolP512r1);
226
    pub const WAP_WSG_IDM_ECID_WTLS1: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls1);
227
    pub const WAP_WSG_IDM_ECID_WTLS3: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls3);
228
    pub const WAP_WSG_IDM_ECID_WTLS4: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls4);
229
    pub const WAP_WSG_IDM_ECID_WTLS5: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls5);
230
    pub const WAP_WSG_IDM_ECID_WTLS6: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls6);
231
    pub const WAP_WSG_IDM_ECID_WTLS7: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls7);
232
    pub const WAP_WSG_IDM_ECID_WTLS8: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls8);
233
    pub const WAP_WSG_IDM_ECID_WTLS9: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls9);
234
    pub const WAP_WSG_IDM_ECID_WTLS10: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls10);
235
    pub const WAP_WSG_IDM_ECID_WTLS11: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls11);
236
    pub const WAP_WSG_IDM_ECID_WTLS12: Nid = Nid(ffi::NID_wap_wsg_idm_ecid_wtls12);
237
    pub const CAST5_CBC: Nid = Nid(ffi::NID_cast5_cbc);
238
    pub const CAST5_ECB: Nid = Nid(ffi::NID_cast5_ecb);
239
    pub const CAST5_CFB64: Nid = Nid(ffi::NID_cast5_cfb64);
240
    pub const CAST5_OFB64: Nid = Nid(ffi::NID_cast5_ofb64);
241
    pub const PBEWITHMD5ANDCAST5_CBC: Nid = Nid(ffi::NID_pbeWithMD5AndCast5_CBC);
242
    pub const ID_PASSWORDBASEDMAC: Nid = Nid(ffi::NID_id_PasswordBasedMAC);
243
    pub const ID_DHBASEDMAC: Nid = Nid(ffi::NID_id_DHBasedMac);
244
    pub const RSADSI: Nid = Nid(ffi::NID_rsadsi);
245
    pub const PKCS: Nid = Nid(ffi::NID_pkcs);
246
    pub const PKCS1: Nid = Nid(ffi::NID_pkcs1);
247
    pub const RSAENCRYPTION: Nid = Nid(ffi::NID_rsaEncryption);
248
    pub const MD2WITHRSAENCRYPTION: Nid = Nid(ffi::NID_md2WithRSAEncryption);
249
    pub const MD4WITHRSAENCRYPTION: Nid = Nid(ffi::NID_md4WithRSAEncryption);
250
    pub const MD5WITHRSAENCRYPTION: Nid = Nid(ffi::NID_md5WithRSAEncryption);
251
    pub const SHA1WITHRSAENCRYPTION: Nid = Nid(ffi::NID_sha1WithRSAEncryption);
252
    pub const RSAESOAEP: Nid = Nid(ffi::NID_rsaesOaep);
253
    pub const MGF1: Nid = Nid(ffi::NID_mgf1);
254
    pub const RSASSAPSS: Nid = Nid(ffi::NID_rsassaPss);
255
    pub const SHA256WITHRSAENCRYPTION: Nid = Nid(ffi::NID_sha256WithRSAEncryption);
256
    pub const SHA384WITHRSAENCRYPTION: Nid = Nid(ffi::NID_sha384WithRSAEncryption);
257
    pub const SHA512WITHRSAENCRYPTION: Nid = Nid(ffi::NID_sha512WithRSAEncryption);
258
    pub const SHA224WITHRSAENCRYPTION: Nid = Nid(ffi::NID_sha224WithRSAEncryption);
259
    pub const PKCS3: Nid = Nid(ffi::NID_pkcs3);
260
    pub const DHKEYAGREEMENT: Nid = Nid(ffi::NID_dhKeyAgreement);
261
    pub const PKCS5: Nid = Nid(ffi::NID_pkcs5);
262
    pub const PBEWITHMD2ANDDES_CBC: Nid = Nid(ffi::NID_pbeWithMD2AndDES_CBC);
263
    pub const PBEWITHMD5ANDDES_CBC: Nid = Nid(ffi::NID_pbeWithMD5AndDES_CBC);
264
    pub const PBEWITHMD2ANDRC2_CBC: Nid = Nid(ffi::NID_pbeWithMD2AndRC2_CBC);
265
    pub const PBEWITHMD5ANDRC2_CBC: Nid = Nid(ffi::NID_pbeWithMD5AndRC2_CBC);
266
    pub const PBEWITHSHA1ANDDES_CBC: Nid = Nid(ffi::NID_pbeWithSHA1AndDES_CBC);
267
    pub const PBEWITHSHA1ANDRC2_CBC: Nid = Nid(ffi::NID_pbeWithSHA1AndRC2_CBC);
268
    pub const ID_PBKDF2: Nid = Nid(ffi::NID_id_pbkdf2);
269
    pub const PBES2: Nid = Nid(ffi::NID_pbes2);
270
    pub const PBMAC1: Nid = Nid(ffi::NID_pbmac1);
271
    pub const PKCS7: Nid = Nid(ffi::NID_pkcs7);
272
    pub const PKCS7_DATA: Nid = Nid(ffi::NID_pkcs7_data);
273
    pub const PKCS7_SIGNED: Nid = Nid(ffi::NID_pkcs7_signed);
274
    pub const PKCS7_ENVELOPED: Nid = Nid(ffi::NID_pkcs7_enveloped);
275
    pub const PKCS7_SIGNEDANDENVELOPED: Nid = Nid(ffi::NID_pkcs7_signedAndEnveloped);
276
    pub const PKCS7_DIGEST: Nid = Nid(ffi::NID_pkcs7_digest);
277
    pub const PKCS7_ENCRYPTED: Nid = Nid(ffi::NID_pkcs7_encrypted);
278
    pub const PKCS9: Nid = Nid(ffi::NID_pkcs9);
279
    pub const PKCS9_EMAILADDRESS: Nid = Nid(ffi::NID_pkcs9_emailAddress);
280
    pub const PKCS9_UNSTRUCTUREDNAME: Nid = Nid(ffi::NID_pkcs9_unstructuredName);
281
    pub const PKCS9_CONTENTTYPE: Nid = Nid(ffi::NID_pkcs9_contentType);
282
    pub const PKCS9_MESSAGEDIGEST: Nid = Nid(ffi::NID_pkcs9_messageDigest);
283
    pub const PKCS9_SIGNINGTIME: Nid = Nid(ffi::NID_pkcs9_signingTime);
284
    pub const PKCS9_COUNTERSIGNATURE: Nid = Nid(ffi::NID_pkcs9_countersignature);
285
    pub const PKCS9_CHALLENGEPASSWORD: Nid = Nid(ffi::NID_pkcs9_challengePassword);
286
    pub const PKCS9_UNSTRUCTUREDADDRESS: Nid = Nid(ffi::NID_pkcs9_unstructuredAddress);
287
    pub const PKCS9_EXTCERTATTRIBUTES: Nid = Nid(ffi::NID_pkcs9_extCertAttributes);
288
    pub const EXT_REQ: Nid = Nid(ffi::NID_ext_req);
289
    pub const SMIMECAPABILITIES: Nid = Nid(ffi::NID_SMIMECapabilities);
290
    pub const SMIME: Nid = Nid(ffi::NID_SMIME);
291
    pub const ID_SMIME_MOD: Nid = Nid(ffi::NID_id_smime_mod);
292
    pub const ID_SMIME_CT: Nid = Nid(ffi::NID_id_smime_ct);
293
    pub const ID_SMIME_AA: Nid = Nid(ffi::NID_id_smime_aa);
294
    pub const ID_SMIME_ALG: Nid = Nid(ffi::NID_id_smime_alg);
295
    pub const ID_SMIME_CD: Nid = Nid(ffi::NID_id_smime_cd);
296
    pub const ID_SMIME_SPQ: Nid = Nid(ffi::NID_id_smime_spq);
297
    pub const ID_SMIME_CTI: Nid = Nid(ffi::NID_id_smime_cti);
298
    pub const ID_SMIME_MOD_CMS: Nid = Nid(ffi::NID_id_smime_mod_cms);
299
    pub const ID_SMIME_MOD_ESS: Nid = Nid(ffi::NID_id_smime_mod_ess);
300
    pub const ID_SMIME_MOD_OID: Nid = Nid(ffi::NID_id_smime_mod_oid);
301
    pub const ID_SMIME_MOD_MSG_V3: Nid = Nid(ffi::NID_id_smime_mod_msg_v3);
302
    pub const ID_SMIME_MOD_ETS_ESIGNATURE_88: Nid = Nid(ffi::NID_id_smime_mod_ets_eSignature_88);
303
    pub const ID_SMIME_MOD_ETS_ESIGNATURE_97: Nid = Nid(ffi::NID_id_smime_mod_ets_eSignature_97);
304
    pub const ID_SMIME_MOD_ETS_ESIGPOLICY_88: Nid = Nid(ffi::NID_id_smime_mod_ets_eSigPolicy_88);
305
    pub const ID_SMIME_MOD_ETS_ESIGPOLICY_97: Nid = Nid(ffi::NID_id_smime_mod_ets_eSigPolicy_97);
306
    pub const ID_SMIME_CT_RECEIPT: Nid = Nid(ffi::NID_id_smime_ct_receipt);
307
    pub const ID_SMIME_CT_AUTHDATA: Nid = Nid(ffi::NID_id_smime_ct_authData);
308
    pub const ID_SMIME_CT_PUBLISHCERT: Nid = Nid(ffi::NID_id_smime_ct_publishCert);
309
    pub const ID_SMIME_CT_TSTINFO: Nid = Nid(ffi::NID_id_smime_ct_TSTInfo);
310
    pub const ID_SMIME_CT_TDTINFO: Nid = Nid(ffi::NID_id_smime_ct_TDTInfo);
311
    pub const ID_SMIME_CT_CONTENTINFO: Nid = Nid(ffi::NID_id_smime_ct_contentInfo);
312
    pub const ID_SMIME_CT_DVCSREQUESTDATA: Nid = Nid(ffi::NID_id_smime_ct_DVCSRequestData);
313
    pub const ID_SMIME_CT_DVCSRESPONSEDATA: Nid = Nid(ffi::NID_id_smime_ct_DVCSResponseData);
314
    pub const ID_SMIME_CT_COMPRESSEDDATA: Nid = Nid(ffi::NID_id_smime_ct_compressedData);
315
    pub const ID_CT_ASCIITEXTWITHCRLF: Nid = Nid(ffi::NID_id_ct_asciiTextWithCRLF);
316
    pub const ID_SMIME_AA_RECEIPTREQUEST: Nid = Nid(ffi::NID_id_smime_aa_receiptRequest);
317
    pub const ID_SMIME_AA_SECURITYLABEL: Nid = Nid(ffi::NID_id_smime_aa_securityLabel);
318
    pub const ID_SMIME_AA_MLEXPANDHISTORY: Nid = Nid(ffi::NID_id_smime_aa_mlExpandHistory);
319
    pub const ID_SMIME_AA_CONTENTHINT: Nid = Nid(ffi::NID_id_smime_aa_contentHint);
320
    pub const ID_SMIME_AA_MSGSIGDIGEST: Nid = Nid(ffi::NID_id_smime_aa_msgSigDigest);
321
    pub const ID_SMIME_AA_ENCAPCONTENTTYPE: Nid = Nid(ffi::NID_id_smime_aa_encapContentType);
322
    pub const ID_SMIME_AA_CONTENTIDENTIFIER: Nid = Nid(ffi::NID_id_smime_aa_contentIdentifier);
323
    pub const ID_SMIME_AA_MACVALUE: Nid = Nid(ffi::NID_id_smime_aa_macValue);
324
    pub const ID_SMIME_AA_EQUIVALENTLABELS: Nid = Nid(ffi::NID_id_smime_aa_equivalentLabels);
325
    pub const ID_SMIME_AA_CONTENTREFERENCE: Nid = Nid(ffi::NID_id_smime_aa_contentReference);
326
    pub const ID_SMIME_AA_ENCRYPKEYPREF: Nid = Nid(ffi::NID_id_smime_aa_encrypKeyPref);
327
    pub const ID_SMIME_AA_SIGNINGCERTIFICATE: Nid = Nid(ffi::NID_id_smime_aa_signingCertificate);
328
    pub const ID_SMIME_AA_SMIMEENCRYPTCERTS: Nid = Nid(ffi::NID_id_smime_aa_smimeEncryptCerts);
329
    pub const ID_SMIME_AA_TIMESTAMPTOKEN: Nid = Nid(ffi::NID_id_smime_aa_timeStampToken);
330
    pub const ID_SMIME_AA_ETS_SIGPOLICYID: Nid = Nid(ffi::NID_id_smime_aa_ets_sigPolicyId);
331
    pub const ID_SMIME_AA_ETS_COMMITMENTTYPE: Nid = Nid(ffi::NID_id_smime_aa_ets_commitmentType);
332
    pub const ID_SMIME_AA_ETS_SIGNERLOCATION: Nid = Nid(ffi::NID_id_smime_aa_ets_signerLocation);
333
    pub const ID_SMIME_AA_ETS_SIGNERATTR: Nid = Nid(ffi::NID_id_smime_aa_ets_signerAttr);
334
    pub const ID_SMIME_AA_ETS_OTHERSIGCERT: Nid = Nid(ffi::NID_id_smime_aa_ets_otherSigCert);
335
    pub const ID_SMIME_AA_ETS_CONTENTTIMESTAMP: Nid =
336
        Nid(ffi::NID_id_smime_aa_ets_contentTimestamp);
337
    pub const ID_SMIME_AA_ETS_CERTIFICATEREFS: Nid = Nid(ffi::NID_id_smime_aa_ets_CertificateRefs);
338
    pub const ID_SMIME_AA_ETS_REVOCATIONREFS: Nid = Nid(ffi::NID_id_smime_aa_ets_RevocationRefs);
339
    pub const ID_SMIME_AA_ETS_CERTVALUES: Nid = Nid(ffi::NID_id_smime_aa_ets_certValues);
340
    pub const ID_SMIME_AA_ETS_REVOCATIONVALUES: Nid =
341
        Nid(ffi::NID_id_smime_aa_ets_revocationValues);
342
    pub const ID_SMIME_AA_ETS_ESCTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_escTimeStamp);
343
    pub const ID_SMIME_AA_ETS_CERTCRLTIMESTAMP: Nid =
344
        Nid(ffi::NID_id_smime_aa_ets_certCRLTimestamp);
345
    pub const ID_SMIME_AA_ETS_ARCHIVETIMESTAMP: Nid =
346
        Nid(ffi::NID_id_smime_aa_ets_archiveTimeStamp);
347
    pub const ID_SMIME_AA_SIGNATURETYPE: Nid = Nid(ffi::NID_id_smime_aa_signatureType);
348
    pub const ID_SMIME_AA_DVCS_DVC: Nid = Nid(ffi::NID_id_smime_aa_dvcs_dvc);
349
    pub const ID_SMIME_ALG_ESDHWITH3DES: Nid = Nid(ffi::NID_id_smime_alg_ESDHwith3DES);
350
    pub const ID_SMIME_ALG_ESDHWITHRC2: Nid = Nid(ffi::NID_id_smime_alg_ESDHwithRC2);
351
    pub const ID_SMIME_ALG_3DESWRAP: Nid = Nid(ffi::NID_id_smime_alg_3DESwrap);
352
    pub const ID_SMIME_ALG_RC2WRAP: Nid = Nid(ffi::NID_id_smime_alg_RC2wrap);
353
    pub const ID_SMIME_ALG_ESDH: Nid = Nid(ffi::NID_id_smime_alg_ESDH);
354
    pub const ID_SMIME_ALG_CMS3DESWRAP: Nid = Nid(ffi::NID_id_smime_alg_CMS3DESwrap);
355
    pub const ID_SMIME_ALG_CMSRC2WRAP: Nid = Nid(ffi::NID_id_smime_alg_CMSRC2wrap);
356
    pub const ID_ALG_PWRI_KEK: Nid = Nid(ffi::NID_id_alg_PWRI_KEK);
357
    pub const ID_SMIME_CD_LDAP: Nid = Nid(ffi::NID_id_smime_cd_ldap);
358
    pub const ID_SMIME_SPQ_ETS_SQT_URI: Nid = Nid(ffi::NID_id_smime_spq_ets_sqt_uri);
359
    pub const ID_SMIME_SPQ_ETS_SQT_UNOTICE: Nid = Nid(ffi::NID_id_smime_spq_ets_sqt_unotice);
360
    pub const ID_SMIME_CTI_ETS_PROOFOFORIGIN: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfOrigin);
361
    pub const ID_SMIME_CTI_ETS_PROOFOFRECEIPT: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfReceipt);
362
    pub const ID_SMIME_CTI_ETS_PROOFOFDELIVERY: Nid =
363
        Nid(ffi::NID_id_smime_cti_ets_proofOfDelivery);
364
    pub const ID_SMIME_CTI_ETS_PROOFOFSENDER: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfSender);
365
    pub const ID_SMIME_CTI_ETS_PROOFOFAPPROVAL: Nid =
366
        Nid(ffi::NID_id_smime_cti_ets_proofOfApproval);
367
    pub const ID_SMIME_CTI_ETS_PROOFOFCREATION: Nid =
368
        Nid(ffi::NID_id_smime_cti_ets_proofOfCreation);
369
    pub const FRIENDLYNAME: Nid = Nid(ffi::NID_friendlyName);
370
    pub const LOCALKEYID: Nid = Nid(ffi::NID_localKeyID);
371
    pub const MS_CSP_NAME: Nid = Nid(ffi::NID_ms_csp_name);
372
    pub const LOCALKEYSET: Nid = Nid(ffi::NID_LocalKeySet);
373
    pub const X509CERTIFICATE: Nid = Nid(ffi::NID_x509Certificate);
374
    pub const SDSICERTIFICATE: Nid = Nid(ffi::NID_sdsiCertificate);
375
    pub const X509CRL: Nid = Nid(ffi::NID_x509Crl);
376
    pub const PBE_WITHSHA1AND128BITRC4: Nid = Nid(ffi::NID_pbe_WithSHA1And128BitRC4);
377
    pub const PBE_WITHSHA1AND40BITRC4: Nid = Nid(ffi::NID_pbe_WithSHA1And40BitRC4);
378
    pub const PBE_WITHSHA1AND3_KEY_TRIPLEDES_CBC: Nid =
379
        Nid(ffi::NID_pbe_WithSHA1And3_Key_TripleDES_CBC);
380
    pub const PBE_WITHSHA1AND2_KEY_TRIPLEDES_CBC: Nid =
381
        Nid(ffi::NID_pbe_WithSHA1And2_Key_TripleDES_CBC);
382
    pub const PBE_WITHSHA1AND128BITRC2_CBC: Nid = Nid(ffi::NID_pbe_WithSHA1And128BitRC2_CBC);
383
    pub const PBE_WITHSHA1AND40BITRC2_CBC: Nid = Nid(ffi::NID_pbe_WithSHA1And40BitRC2_CBC);
384
    pub const KEYBAG: Nid = Nid(ffi::NID_keyBag);
385
    pub const PKCS8SHROUDEDKEYBAG: Nid = Nid(ffi::NID_pkcs8ShroudedKeyBag);
386
    pub const CERTBAG: Nid = Nid(ffi::NID_certBag);
387
    pub const CRLBAG: Nid = Nid(ffi::NID_crlBag);
388
    pub const SECRETBAG: Nid = Nid(ffi::NID_secretBag);
389
    pub const SAFECONTENTSBAG: Nid = Nid(ffi::NID_safeContentsBag);
390
    pub const MD2: Nid = Nid(ffi::NID_md2);
391
    pub const MD4: Nid = Nid(ffi::NID_md4);
392
    pub const MD5: Nid = Nid(ffi::NID_md5);
393
    pub const MD5_SHA1: Nid = Nid(ffi::NID_md5_sha1);
394
    pub const HMACWITHMD5: Nid = Nid(ffi::NID_hmacWithMD5);
395
    pub const HMACWITHSHA1: Nid = Nid(ffi::NID_hmacWithSHA1);
396
    pub const HMACWITHSHA224: Nid = Nid(ffi::NID_hmacWithSHA224);
397
    pub const HMACWITHSHA256: Nid = Nid(ffi::NID_hmacWithSHA256);
398
    pub const HMACWITHSHA384: Nid = Nid(ffi::NID_hmacWithSHA384);
399
    pub const HMACWITHSHA512: Nid = Nid(ffi::NID_hmacWithSHA512);
400
    pub const RC2_CBC: Nid = Nid(ffi::NID_rc2_cbc);
401
    pub const RC2_ECB: Nid = Nid(ffi::NID_rc2_ecb);
402
    pub const RC2_CFB64: Nid = Nid(ffi::NID_rc2_cfb64);
403
    pub const RC2_OFB64: Nid = Nid(ffi::NID_rc2_ofb64);
404
    pub const RC2_40_CBC: Nid = Nid(ffi::NID_rc2_40_cbc);
405
    pub const RC2_64_CBC: Nid = Nid(ffi::NID_rc2_64_cbc);
406
    pub const RC4: Nid = Nid(ffi::NID_rc4);
407
    pub const RC4_40: Nid = Nid(ffi::NID_rc4_40);
408
    pub const DES_EDE3_CBC: Nid = Nid(ffi::NID_des_ede3_cbc);
409
    pub const RC5_CBC: Nid = Nid(ffi::NID_rc5_cbc);
410
    pub const RC5_ECB: Nid = Nid(ffi::NID_rc5_ecb);
411
    pub const RC5_CFB64: Nid = Nid(ffi::NID_rc5_cfb64);
412
    pub const RC5_OFB64: Nid = Nid(ffi::NID_rc5_ofb64);
413
    pub const MS_EXT_REQ: Nid = Nid(ffi::NID_ms_ext_req);
414
    pub const MS_CODE_IND: Nid = Nid(ffi::NID_ms_code_ind);
415
    pub const MS_CODE_COM: Nid = Nid(ffi::NID_ms_code_com);
416
    pub const MS_CTL_SIGN: Nid = Nid(ffi::NID_ms_ctl_sign);
417
    pub const MS_SGC: Nid = Nid(ffi::NID_ms_sgc);
418
    pub const MS_EFS: Nid = Nid(ffi::NID_ms_efs);
419
    pub const MS_SMARTCARD_LOGIN: Nid = Nid(ffi::NID_ms_smartcard_login);
420
    pub const MS_UPN: Nid = Nid(ffi::NID_ms_upn);
421
    pub const IDEA_CBC: Nid = Nid(ffi::NID_idea_cbc);
422
    pub const IDEA_ECB: Nid = Nid(ffi::NID_idea_ecb);
423
    pub const IDEA_CFB64: Nid = Nid(ffi::NID_idea_cfb64);
424
    pub const IDEA_OFB64: Nid = Nid(ffi::NID_idea_ofb64);
425
    pub const BF_CBC: Nid = Nid(ffi::NID_bf_cbc);
426
    pub const BF_ECB: Nid = Nid(ffi::NID_bf_ecb);
427
    pub const BF_CFB64: Nid = Nid(ffi::NID_bf_cfb64);
428
    pub const BF_OFB64: Nid = Nid(ffi::NID_bf_ofb64);
429
    pub const ID_PKIX: Nid = Nid(ffi::NID_id_pkix);
430
    pub const ID_PKIX_MOD: Nid = Nid(ffi::NID_id_pkix_mod);
431
    pub const ID_PE: Nid = Nid(ffi::NID_id_pe);
432
    pub const ID_QT: Nid = Nid(ffi::NID_id_qt);
433
    pub const ID_KP: Nid = Nid(ffi::NID_id_kp);
434
    pub const ID_IT: Nid = Nid(ffi::NID_id_it);
435
    pub const ID_PKIP: Nid = Nid(ffi::NID_id_pkip);
436
    pub const ID_ALG: Nid = Nid(ffi::NID_id_alg);
437
    pub const ID_CMC: Nid = Nid(ffi::NID_id_cmc);
438
    pub const ID_ON: Nid = Nid(ffi::NID_id_on);
439
    pub const ID_PDA: Nid = Nid(ffi::NID_id_pda);
440
    pub const ID_ACA: Nid = Nid(ffi::NID_id_aca);
441
    pub const ID_QCS: Nid = Nid(ffi::NID_id_qcs);
442
    pub const ID_CCT: Nid = Nid(ffi::NID_id_cct);
443
    pub const ID_PPL: Nid = Nid(ffi::NID_id_ppl);
444
    pub const ID_AD: Nid = Nid(ffi::NID_id_ad);
445
    pub const ID_PKIX1_EXPLICIT_88: Nid = Nid(ffi::NID_id_pkix1_explicit_88);
446
    pub const ID_PKIX1_IMPLICIT_88: Nid = Nid(ffi::NID_id_pkix1_implicit_88);
447
    pub const ID_PKIX1_EXPLICIT_93: Nid = Nid(ffi::NID_id_pkix1_explicit_93);
448
    pub const ID_PKIX1_IMPLICIT_93: Nid = Nid(ffi::NID_id_pkix1_implicit_93);
449
    pub const ID_MOD_CRMF: Nid = Nid(ffi::NID_id_mod_crmf);
450
    pub const ID_MOD_CMC: Nid = Nid(ffi::NID_id_mod_cmc);
451
    pub const ID_MOD_KEA_PROFILE_88: Nid = Nid(ffi::NID_id_mod_kea_profile_88);
452
    pub const ID_MOD_KEA_PROFILE_93: Nid = Nid(ffi::NID_id_mod_kea_profile_93);
453
    pub const ID_MOD_CMP: Nid = Nid(ffi::NID_id_mod_cmp);
454
    pub const ID_MOD_QUALIFIED_CERT_88: Nid = Nid(ffi::NID_id_mod_qualified_cert_88);
455
    pub const ID_MOD_QUALIFIED_CERT_93: Nid = Nid(ffi::NID_id_mod_qualified_cert_93);
456
    pub const ID_MOD_ATTRIBUTE_CERT: Nid = Nid(ffi::NID_id_mod_attribute_cert);
457
    pub const ID_MOD_TIMESTAMP_PROTOCOL: Nid = Nid(ffi::NID_id_mod_timestamp_protocol);
458
    pub const ID_MOD_OCSP: Nid = Nid(ffi::NID_id_mod_ocsp);
459
    pub const ID_MOD_DVCS: Nid = Nid(ffi::NID_id_mod_dvcs);
460
    pub const ID_MOD_CMP2000: Nid = Nid(ffi::NID_id_mod_cmp2000);
461
    pub const INFO_ACCESS: Nid = Nid(ffi::NID_info_access);
462
    pub const BIOMETRICINFO: Nid = Nid(ffi::NID_biometricInfo);
463
    pub const QCSTATEMENTS: Nid = Nid(ffi::NID_qcStatements);
464
    pub const AC_AUDITENTITY: Nid = Nid(ffi::NID_ac_auditEntity);
465
    pub const AC_TARGETING: Nid = Nid(ffi::NID_ac_targeting);
466
    pub const AACONTROLS: Nid = Nid(ffi::NID_aaControls);
467
    pub const SBGP_IPADDRBLOCK: Nid = Nid(ffi::NID_sbgp_ipAddrBlock);
468
    pub const SBGP_AUTONOMOUSSYSNUM: Nid = Nid(ffi::NID_sbgp_autonomousSysNum);
469
    pub const SBGP_ROUTERIDENTIFIER: Nid = Nid(ffi::NID_sbgp_routerIdentifier);
470
    pub const AC_PROXYING: Nid = Nid(ffi::NID_ac_proxying);
471
    pub const SINFO_ACCESS: Nid = Nid(ffi::NID_sinfo_access);
472
    pub const PROXYCERTINFO: Nid = Nid(ffi::NID_proxyCertInfo);
473
    pub const ID_QT_CPS: Nid = Nid(ffi::NID_id_qt_cps);
474
    pub const ID_QT_UNOTICE: Nid = Nid(ffi::NID_id_qt_unotice);
475
    pub const TEXTNOTICE: Nid = Nid(ffi::NID_textNotice);
476
    pub const SERVER_AUTH: Nid = Nid(ffi::NID_server_auth);
477
    pub const CLIENT_AUTH: Nid = Nid(ffi::NID_client_auth);
478
    pub const CODE_SIGN: Nid = Nid(ffi::NID_code_sign);
479
    pub const EMAIL_PROTECT: Nid = Nid(ffi::NID_email_protect);
480
    pub const IPSECENDSYSTEM: Nid = Nid(ffi::NID_ipsecEndSystem);
481
    pub const IPSECTUNNEL: Nid = Nid(ffi::NID_ipsecTunnel);
482
    pub const IPSECUSER: Nid = Nid(ffi::NID_ipsecUser);
483
    pub const TIME_STAMP: Nid = Nid(ffi::NID_time_stamp);
484
    pub const OCSP_SIGN: Nid = Nid(ffi::NID_OCSP_sign);
485
    pub const DVCS: Nid = Nid(ffi::NID_dvcs);
486
    pub const ID_IT_CAPROTENCCERT: Nid = Nid(ffi::NID_id_it_caProtEncCert);
487
    pub const ID_IT_SIGNKEYPAIRTYPES: Nid = Nid(ffi::NID_id_it_signKeyPairTypes);
488
    pub const ID_IT_ENCKEYPAIRTYPES: Nid = Nid(ffi::NID_id_it_encKeyPairTypes);
489
    pub const ID_IT_PREFERREDSYMMALG: Nid = Nid(ffi::NID_id_it_preferredSymmAlg);
490
    pub const ID_IT_CAKEYUPDATEINFO: Nid = Nid(ffi::NID_id_it_caKeyUpdateInfo);
491
    pub const ID_IT_CURRENTCRL: Nid = Nid(ffi::NID_id_it_currentCRL);
492
    pub const ID_IT_UNSUPPORTEDOIDS: Nid = Nid(ffi::NID_id_it_unsupportedOIDs);
493
    pub const ID_IT_SUBSCRIPTIONREQUEST: Nid = Nid(ffi::NID_id_it_subscriptionRequest);
494
    pub const ID_IT_SUBSCRIPTIONRESPONSE: Nid = Nid(ffi::NID_id_it_subscriptionResponse);
495
    pub const ID_IT_KEYPAIRPARAMREQ: Nid = Nid(ffi::NID_id_it_keyPairParamReq);
496
    pub const ID_IT_KEYPAIRPARAMREP: Nid = Nid(ffi::NID_id_it_keyPairParamRep);
497
    pub const ID_IT_REVPASSPHRASE: Nid = Nid(ffi::NID_id_it_revPassphrase);
498
    pub const ID_IT_IMPLICITCONFIRM: Nid = Nid(ffi::NID_id_it_implicitConfirm);
499
    pub const ID_IT_CONFIRMWAITTIME: Nid = Nid(ffi::NID_id_it_confirmWaitTime);
500
    pub const ID_IT_ORIGPKIMESSAGE: Nid = Nid(ffi::NID_id_it_origPKIMessage);
501
    pub const ID_IT_SUPPLANGTAGS: Nid = Nid(ffi::NID_id_it_suppLangTags);
502
    pub const ID_REGCTRL: Nid = Nid(ffi::NID_id_regCtrl);
503
    pub const ID_REGINFO: Nid = Nid(ffi::NID_id_regInfo);
504
    pub const ID_REGCTRL_REGTOKEN: Nid = Nid(ffi::NID_id_regCtrl_regToken);
505
    pub const ID_REGCTRL_AUTHENTICATOR: Nid = Nid(ffi::NID_id_regCtrl_authenticator);
506
    pub const ID_REGCTRL_PKIPUBLICATIONINFO: Nid = Nid(ffi::NID_id_regCtrl_pkiPublicationInfo);
507
    pub const ID_REGCTRL_PKIARCHIVEOPTIONS: Nid = Nid(ffi::NID_id_regCtrl_pkiArchiveOptions);
508
    pub const ID_REGCTRL_OLDCERTID: Nid = Nid(ffi::NID_id_regCtrl_oldCertID);
509
    pub const ID_REGCTRL_PROTOCOLENCRKEY: Nid = Nid(ffi::NID_id_regCtrl_protocolEncrKey);
510
    pub const ID_REGINFO_UTF8PAIRS: Nid = Nid(ffi::NID_id_regInfo_utf8Pairs);
511
    pub const ID_REGINFO_CERTREQ: Nid = Nid(ffi::NID_id_regInfo_certReq);
512
    pub const ID_ALG_DES40: Nid = Nid(ffi::NID_id_alg_des40);
513
    pub const ID_ALG_NOSIGNATURE: Nid = Nid(ffi::NID_id_alg_noSignature);
514
    pub const ID_ALG_DH_SIG_HMAC_SHA1: Nid = Nid(ffi::NID_id_alg_dh_sig_hmac_sha1);
515
    pub const ID_ALG_DH_POP: Nid = Nid(ffi::NID_id_alg_dh_pop);
516
    pub const ID_CMC_STATUSINFO: Nid = Nid(ffi::NID_id_cmc_statusInfo);
517
    pub const ID_CMC_IDENTIFICATION: Nid = Nid(ffi::NID_id_cmc_identification);
518
    pub const ID_CMC_IDENTITYPROOF: Nid = Nid(ffi::NID_id_cmc_identityProof);
519
    pub const ID_CMC_DATARETURN: Nid = Nid(ffi::NID_id_cmc_dataReturn);
520
    pub const ID_CMC_TRANSACTIONID: Nid = Nid(ffi::NID_id_cmc_transactionId);
521
    pub const ID_CMC_SENDERNONCE: Nid = Nid(ffi::NID_id_cmc_senderNonce);
522
    pub const ID_CMC_RECIPIENTNONCE: Nid = Nid(ffi::NID_id_cmc_recipientNonce);
523
    pub const ID_CMC_ADDEXTENSIONS: Nid = Nid(ffi::NID_id_cmc_addExtensions);
524
    pub const ID_CMC_ENCRYPTEDPOP: Nid = Nid(ffi::NID_id_cmc_encryptedPOP);
525
    pub const ID_CMC_DECRYPTEDPOP: Nid = Nid(ffi::NID_id_cmc_decryptedPOP);
526
    pub const ID_CMC_LRAPOPWITNESS: Nid = Nid(ffi::NID_id_cmc_lraPOPWitness);
527
    pub const ID_CMC_GETCERT: Nid = Nid(ffi::NID_id_cmc_getCert);
528
    pub const ID_CMC_GETCRL: Nid = Nid(ffi::NID_id_cmc_getCRL);
529
    pub const ID_CMC_REVOKEREQUEST: Nid = Nid(ffi::NID_id_cmc_revokeRequest);
530
    pub const ID_CMC_REGINFO: Nid = Nid(ffi::NID_id_cmc_regInfo);
531
    pub const ID_CMC_RESPONSEINFO: Nid = Nid(ffi::NID_id_cmc_responseInfo);
532
    pub const ID_CMC_QUERYPENDING: Nid = Nid(ffi::NID_id_cmc_queryPending);
533
    pub const ID_CMC_POPLINKRANDOM: Nid = Nid(ffi::NID_id_cmc_popLinkRandom);
534
    pub const ID_CMC_POPLINKWITNESS: Nid = Nid(ffi::NID_id_cmc_popLinkWitness);
535
    pub const ID_CMC_CONFIRMCERTACCEPTANCE: Nid = Nid(ffi::NID_id_cmc_confirmCertAcceptance);
536
    pub const ID_ON_PERSONALDATA: Nid = Nid(ffi::NID_id_on_personalData);
537
    pub const ID_ON_PERMANENTIDENTIFIER: Nid = Nid(ffi::NID_id_on_permanentIdentifier);
538
    pub const ID_PDA_DATEOFBIRTH: Nid = Nid(ffi::NID_id_pda_dateOfBirth);
539
    pub const ID_PDA_PLACEOFBIRTH: Nid = Nid(ffi::NID_id_pda_placeOfBirth);
540
    pub const ID_PDA_GENDER: Nid = Nid(ffi::NID_id_pda_gender);
541
    pub const ID_PDA_COUNTRYOFCITIZENSHIP: Nid = Nid(ffi::NID_id_pda_countryOfCitizenship);
542
    pub const ID_PDA_COUNTRYOFRESIDENCE: Nid = Nid(ffi::NID_id_pda_countryOfResidence);
543
    pub const ID_ACA_AUTHENTICATIONINFO: Nid = Nid(ffi::NID_id_aca_authenticationInfo);
544
    pub const ID_ACA_ACCESSIDENTITY: Nid = Nid(ffi::NID_id_aca_accessIdentity);
545
    pub const ID_ACA_CHARGINGIDENTITY: Nid = Nid(ffi::NID_id_aca_chargingIdentity);
546
    pub const ID_ACA_GROUP: Nid = Nid(ffi::NID_id_aca_group);
547
    pub const ID_ACA_ROLE: Nid = Nid(ffi::NID_id_aca_role);
548
    pub const ID_ACA_ENCATTRS: Nid = Nid(ffi::NID_id_aca_encAttrs);
549
    pub const ID_QCS_PKIXQCSYNTAX_V1: Nid = Nid(ffi::NID_id_qcs_pkixQCSyntax_v1);
550
    pub const ID_CCT_CRS: Nid = Nid(ffi::NID_id_cct_crs);
551
    pub const ID_CCT_PKIDATA: Nid = Nid(ffi::NID_id_cct_PKIData);
552
    pub const ID_CCT_PKIRESPONSE: Nid = Nid(ffi::NID_id_cct_PKIResponse);
553
    pub const ID_PPL_ANYLANGUAGE: Nid = Nid(ffi::NID_id_ppl_anyLanguage);
554
    pub const ID_PPL_INHERITALL: Nid = Nid(ffi::NID_id_ppl_inheritAll);
555
    pub const INDEPENDENT: Nid = Nid(ffi::NID_Independent);
556
    pub const AD_OCSP: Nid = Nid(ffi::NID_ad_OCSP);
557
    pub const AD_CA_ISSUERS: Nid = Nid(ffi::NID_ad_ca_issuers);
558
    pub const AD_TIMESTAMPING: Nid = Nid(ffi::NID_ad_timeStamping);
559
    pub const AD_DVCS: Nid = Nid(ffi::NID_ad_dvcs);
560
    pub const CAREPOSITORY: Nid = Nid(ffi::NID_caRepository);
561
    pub const ID_PKIX_OCSP_BASIC: Nid = Nid(ffi::NID_id_pkix_OCSP_basic);
562
    pub const ID_PKIX_OCSP_NONCE: Nid = Nid(ffi::NID_id_pkix_OCSP_Nonce);
563
    pub const ID_PKIX_OCSP_CRLID: Nid = Nid(ffi::NID_id_pkix_OCSP_CrlID);
564
    pub const ID_PKIX_OCSP_ACCEPTABLERESPONSES: Nid =
565
        Nid(ffi::NID_id_pkix_OCSP_acceptableResponses);
566
    pub const ID_PKIX_OCSP_NOCHECK: Nid = Nid(ffi::NID_id_pkix_OCSP_noCheck);
567
    pub const ID_PKIX_OCSP_ARCHIVECUTOFF: Nid = Nid(ffi::NID_id_pkix_OCSP_archiveCutoff);
568
    pub const ID_PKIX_OCSP_SERVICELOCATOR: Nid = Nid(ffi::NID_id_pkix_OCSP_serviceLocator);
569
    pub const ID_PKIX_OCSP_EXTENDEDSTATUS: Nid = Nid(ffi::NID_id_pkix_OCSP_extendedStatus);
570
    pub const ID_PKIX_OCSP_VALID: Nid = Nid(ffi::NID_id_pkix_OCSP_valid);
571
    pub const ID_PKIX_OCSP_PATH: Nid = Nid(ffi::NID_id_pkix_OCSP_path);
572
    pub const ID_PKIX_OCSP_TRUSTROOT: Nid = Nid(ffi::NID_id_pkix_OCSP_trustRoot);
573
    pub const ALGORITHM: Nid = Nid(ffi::NID_algorithm);
574
    pub const MD5WITHRSA: Nid = Nid(ffi::NID_md5WithRSA);
575
    pub const DES_ECB: Nid = Nid(ffi::NID_des_ecb);
576
    pub const DES_CBC: Nid = Nid(ffi::NID_des_cbc);
577
    pub const DES_OFB64: Nid = Nid(ffi::NID_des_ofb64);
578
    pub const DES_CFB64: Nid = Nid(ffi::NID_des_cfb64);
579
    pub const RSASIGNATURE: Nid = Nid(ffi::NID_rsaSignature);
580
    pub const DSA_2: Nid = Nid(ffi::NID_dsa_2);
581
    pub const DSAWITHSHA: Nid = Nid(ffi::NID_dsaWithSHA);
582
    pub const SHAWITHRSAENCRYPTION: Nid = Nid(ffi::NID_shaWithRSAEncryption);
583
    pub const DES_EDE_ECB: Nid = Nid(ffi::NID_des_ede_ecb);
584
    pub const DES_EDE3_ECB: Nid = Nid(ffi::NID_des_ede3_ecb);
585
    pub const DES_EDE_CBC: Nid = Nid(ffi::NID_des_ede_cbc);
586
    pub const DES_EDE_CFB64: Nid = Nid(ffi::NID_des_ede_cfb64);
587
    pub const DES_EDE3_CFB64: Nid = Nid(ffi::NID_des_ede3_cfb64);
588
    pub const DES_EDE_OFB64: Nid = Nid(ffi::NID_des_ede_ofb64);
589
    pub const DES_EDE3_OFB64: Nid = Nid(ffi::NID_des_ede3_ofb64);
590
    pub const DESX_CBC: Nid = Nid(ffi::NID_desx_cbc);
591
    pub const SHA: Nid = Nid(ffi::NID_sha);
592
    pub const SHA1: Nid = Nid(ffi::NID_sha1);
593
    pub const DSAWITHSHA1_2: Nid = Nid(ffi::NID_dsaWithSHA1_2);
594
    pub const SHA1WITHRSA: Nid = Nid(ffi::NID_sha1WithRSA);
595
    pub const RIPEMD160: Nid = Nid(ffi::NID_ripemd160);
596
    pub const RIPEMD160WITHRSA: Nid = Nid(ffi::NID_ripemd160WithRSA);
597
    pub const SXNET: Nid = Nid(ffi::NID_sxnet);
598
    pub const X500: Nid = Nid(ffi::NID_X500);
599
    pub const X509: Nid = Nid(ffi::NID_X509);
600
    pub const COMMONNAME: Nid = Nid(ffi::NID_commonName);
601
    pub const SURNAME: Nid = Nid(ffi::NID_surname);
602
    pub const SERIALNUMBER: Nid = Nid(ffi::NID_serialNumber);
603
    pub const COUNTRYNAME: Nid = Nid(ffi::NID_countryName);
604
    pub const LOCALITYNAME: Nid = Nid(ffi::NID_localityName);
605
    pub const STATEORPROVINCENAME: Nid = Nid(ffi::NID_stateOrProvinceName);
606
    pub const STREETADDRESS: Nid = Nid(ffi::NID_streetAddress);
607
    pub const ORGANIZATIONNAME: Nid = Nid(ffi::NID_organizationName);
608
    pub const ORGANIZATIONALUNITNAME: Nid = Nid(ffi::NID_organizationalUnitName);
609
    pub const TITLE: Nid = Nid(ffi::NID_title);
610
    pub const DESCRIPTION: Nid = Nid(ffi::NID_description);
611
    pub const SEARCHGUIDE: Nid = Nid(ffi::NID_searchGuide);
612
    pub const BUSINESSCATEGORY: Nid = Nid(ffi::NID_businessCategory);
613
    pub const POSTALADDRESS: Nid = Nid(ffi::NID_postalAddress);
614
    pub const POSTALCODE: Nid = Nid(ffi::NID_postalCode);
615
    pub const POSTOFFICEBOX: Nid = Nid(ffi::NID_postOfficeBox);
616
    pub const PHYSICALDELIVERYOFFICENAME: Nid = Nid(ffi::NID_physicalDeliveryOfficeName);
617
    pub const TELEPHONENUMBER: Nid = Nid(ffi::NID_telephoneNumber);
618
    pub const TELEXNUMBER: Nid = Nid(ffi::NID_telexNumber);
619
    pub const TELETEXTERMINALIDENTIFIER: Nid = Nid(ffi::NID_teletexTerminalIdentifier);
620
    pub const FACSIMILETELEPHONENUMBER: Nid = Nid(ffi::NID_facsimileTelephoneNumber);
621
    pub const X121ADDRESS: Nid = Nid(ffi::NID_x121Address);
622
    pub const INTERNATIONALISDNNUMBER: Nid = Nid(ffi::NID_internationaliSDNNumber);
623
    pub const REGISTEREDADDRESS: Nid = Nid(ffi::NID_registeredAddress);
624
    pub const DESTINATIONINDICATOR: Nid = Nid(ffi::NID_destinationIndicator);
625
    pub const PREFERREDDELIVERYMETHOD: Nid = Nid(ffi::NID_preferredDeliveryMethod);
626
    pub const PRESENTATIONADDRESS: Nid = Nid(ffi::NID_presentationAddress);
627
    pub const SUPPORTEDAPPLICATIONCONTEXT: Nid = Nid(ffi::NID_supportedApplicationContext);
628
    pub const MEMBER: Nid = Nid(ffi::NID_member);
629
    pub const OWNER: Nid = Nid(ffi::NID_owner);
630
    pub const ROLEOCCUPANT: Nid = Nid(ffi::NID_roleOccupant);
631
    pub const SEEALSO: Nid = Nid(ffi::NID_seeAlso);
632
    pub const USERPASSWORD: Nid = Nid(ffi::NID_userPassword);
633
    pub const USERCERTIFICATE: Nid = Nid(ffi::NID_userCertificate);
634
    pub const CACERTIFICATE: Nid = Nid(ffi::NID_cACertificate);
635
    pub const AUTHORITYREVOCATIONLIST: Nid = Nid(ffi::NID_authorityRevocationList);
636
    pub const CERTIFICATEREVOCATIONLIST: Nid = Nid(ffi::NID_certificateRevocationList);
637
    pub const CROSSCERTIFICATEPAIR: Nid = Nid(ffi::NID_crossCertificatePair);
638
    pub const NAME: Nid = Nid(ffi::NID_name);
639
    pub const GIVENNAME: Nid = Nid(ffi::NID_givenName);
640
    pub const INITIALS: Nid = Nid(ffi::NID_initials);
641
    pub const GENERATIONQUALIFIER: Nid = Nid(ffi::NID_generationQualifier);
642
    pub const X500UNIQUEIDENTIFIER: Nid = Nid(ffi::NID_x500UniqueIdentifier);
643
    pub const DNQUALIFIER: Nid = Nid(ffi::NID_dnQualifier);
644
    pub const ENHANCEDSEARCHGUIDE: Nid = Nid(ffi::NID_enhancedSearchGuide);
645
    pub const PROTOCOLINFORMATION: Nid = Nid(ffi::NID_protocolInformation);
646
    pub const DISTINGUISHEDNAME: Nid = Nid(ffi::NID_distinguishedName);
647
    pub const UNIQUEMEMBER: Nid = Nid(ffi::NID_uniqueMember);
648
    pub const HOUSEIDENTIFIER: Nid = Nid(ffi::NID_houseIdentifier);
649
    pub const SUPPORTEDALGORITHMS: Nid = Nid(ffi::NID_supportedAlgorithms);
650
    pub const DELTAREVOCATIONLIST: Nid = Nid(ffi::NID_deltaRevocationList);
651
    pub const DMDNAME: Nid = Nid(ffi::NID_dmdName);
652
    pub const PSEUDONYM: Nid = Nid(ffi::NID_pseudonym);
653
    pub const ROLE: Nid = Nid(ffi::NID_role);
654
    pub const X500ALGORITHMS: Nid = Nid(ffi::NID_X500algorithms);
655
    pub const RSA: Nid = Nid(ffi::NID_rsa);
656
    pub const MDC2WITHRSA: Nid = Nid(ffi::NID_mdc2WithRSA);
657
    pub const MDC2: Nid = Nid(ffi::NID_mdc2);
658
    pub const ID_CE: Nid = Nid(ffi::NID_id_ce);
659
    pub const SUBJECT_DIRECTORY_ATTRIBUTES: Nid = Nid(ffi::NID_subject_directory_attributes);
660
    pub const SUBJECT_KEY_IDENTIFIER: Nid = Nid(ffi::NID_subject_key_identifier);
661
    pub const KEY_USAGE: Nid = Nid(ffi::NID_key_usage);
662
    pub const PRIVATE_KEY_USAGE_PERIOD: Nid = Nid(ffi::NID_private_key_usage_period);
663
    pub const SUBJECT_ALT_NAME: Nid = Nid(ffi::NID_subject_alt_name);
664
    pub const ISSUER_ALT_NAME: Nid = Nid(ffi::NID_issuer_alt_name);
665
    pub const BASIC_CONSTRAINTS: Nid = Nid(ffi::NID_basic_constraints);
666
    pub const CRL_NUMBER: Nid = Nid(ffi::NID_crl_number);
667
    pub const CRL_REASON: Nid = Nid(ffi::NID_crl_reason);
668
    pub const INVALIDITY_DATE: Nid = Nid(ffi::NID_invalidity_date);
669
    pub const DELTA_CRL: Nid = Nid(ffi::NID_delta_crl);
670
    pub const ISSUING_DISTRIBUTION_POINT: Nid = Nid(ffi::NID_issuing_distribution_point);
671
    pub const CERTIFICATE_ISSUER: Nid = Nid(ffi::NID_certificate_issuer);
672
    pub const NAME_CONSTRAINTS: Nid = Nid(ffi::NID_name_constraints);
673
    pub const CRL_DISTRIBUTION_POINTS: Nid = Nid(ffi::NID_crl_distribution_points);
674
    pub const CERTIFICATE_POLICIES: Nid = Nid(ffi::NID_certificate_policies);
675
    pub const ANY_POLICY: Nid = Nid(ffi::NID_any_policy);
676
    pub const POLICY_MAPPINGS: Nid = Nid(ffi::NID_policy_mappings);
677
    pub const AUTHORITY_KEY_IDENTIFIER: Nid = Nid(ffi::NID_authority_key_identifier);
678
    pub const POLICY_CONSTRAINTS: Nid = Nid(ffi::NID_policy_constraints);
679
    pub const EXT_KEY_USAGE: Nid = Nid(ffi::NID_ext_key_usage);
680
    pub const FRESHEST_CRL: Nid = Nid(ffi::NID_freshest_crl);
681
    pub const INHIBIT_ANY_POLICY: Nid = Nid(ffi::NID_inhibit_any_policy);
682
    pub const TARGET_INFORMATION: Nid = Nid(ffi::NID_target_information);
683
    pub const NO_REV_AVAIL: Nid = Nid(ffi::NID_no_rev_avail);
684
    pub const ANYEXTENDEDKEYUSAGE: Nid = Nid(ffi::NID_anyExtendedKeyUsage);
685
    pub const NETSCAPE: Nid = Nid(ffi::NID_netscape);
686
    pub const NETSCAPE_CERT_EXTENSION: Nid = Nid(ffi::NID_netscape_cert_extension);
687
    pub const NETSCAPE_DATA_TYPE: Nid = Nid(ffi::NID_netscape_data_type);
688
    pub const NETSCAPE_CERT_TYPE: Nid = Nid(ffi::NID_netscape_cert_type);
689
    pub const NETSCAPE_BASE_URL: Nid = Nid(ffi::NID_netscape_base_url);
690
    pub const NETSCAPE_REVOCATION_URL: Nid = Nid(ffi::NID_netscape_revocation_url);
691
    pub const NETSCAPE_CA_REVOCATION_URL: Nid = Nid(ffi::NID_netscape_ca_revocation_url);
692
    pub const NETSCAPE_RENEWAL_URL: Nid = Nid(ffi::NID_netscape_renewal_url);
693
    pub const NETSCAPE_CA_POLICY_URL: Nid = Nid(ffi::NID_netscape_ca_policy_url);
694
    pub const NETSCAPE_SSL_SERVER_NAME: Nid = Nid(ffi::NID_netscape_ssl_server_name);
695
    pub const NETSCAPE_COMMENT: Nid = Nid(ffi::NID_netscape_comment);
696
    pub const NETSCAPE_CERT_SEQUENCE: Nid = Nid(ffi::NID_netscape_cert_sequence);
697
    pub const NS_SGC: Nid = Nid(ffi::NID_ns_sgc);
698
    pub const ORG: Nid = Nid(ffi::NID_org);
699
    pub const DOD: Nid = Nid(ffi::NID_dod);
700
    pub const IANA: Nid = Nid(ffi::NID_iana);
701
    pub const DIRECTORY: Nid = Nid(ffi::NID_Directory);
702
    pub const MANAGEMENT: Nid = Nid(ffi::NID_Management);
703
    pub const EXPERIMENTAL: Nid = Nid(ffi::NID_Experimental);
704
    pub const PRIVATE: Nid = Nid(ffi::NID_Private);
705
    pub const SECURITY: Nid = Nid(ffi::NID_Security);
706
    pub const SNMPV2: Nid = Nid(ffi::NID_SNMPv2);
707
    pub const MAIL: Nid = Nid(ffi::NID_Mail);
708
    pub const ENTERPRISES: Nid = Nid(ffi::NID_Enterprises);
709
    pub const DCOBJECT: Nid = Nid(ffi::NID_dcObject);
710
    pub const MIME_MHS: Nid = Nid(ffi::NID_mime_mhs);
711
    pub const MIME_MHS_HEADINGS: Nid = Nid(ffi::NID_mime_mhs_headings);
712
    pub const MIME_MHS_BODIES: Nid = Nid(ffi::NID_mime_mhs_bodies);
713
    pub const ID_HEX_PARTIAL_MESSAGE: Nid = Nid(ffi::NID_id_hex_partial_message);
714
    pub const ID_HEX_MULTIPART_MESSAGE: Nid = Nid(ffi::NID_id_hex_multipart_message);
715
    pub const ZLIB_COMPRESSION: Nid = Nid(ffi::NID_zlib_compression);
716
    pub const AES_128_ECB: Nid = Nid(ffi::NID_aes_128_ecb);
717
    pub const AES_128_CBC: Nid = Nid(ffi::NID_aes_128_cbc);
718
    pub const AES_128_OFB128: Nid = Nid(ffi::NID_aes_128_ofb128);
719
    pub const AES_128_CFB128: Nid = Nid(ffi::NID_aes_128_cfb128);
720
    pub const ID_AES128_WRAP: Nid = Nid(ffi::NID_id_aes128_wrap);
721
    pub const AES_128_GCM: Nid = Nid(ffi::NID_aes_128_gcm);
722
    pub const AES_128_CCM: Nid = Nid(ffi::NID_aes_128_ccm);
723
    pub const ID_AES128_WRAP_PAD: Nid = Nid(ffi::NID_id_aes128_wrap_pad);
724
    pub const AES_192_ECB: Nid = Nid(ffi::NID_aes_192_ecb);
725
    pub const AES_192_CBC: Nid = Nid(ffi::NID_aes_192_cbc);
726
    pub const AES_192_OFB128: Nid = Nid(ffi::NID_aes_192_ofb128);
727
    pub const AES_192_CFB128: Nid = Nid(ffi::NID_aes_192_cfb128);
728
    pub const ID_AES192_WRAP: Nid = Nid(ffi::NID_id_aes192_wrap);
729
    pub const AES_192_GCM: Nid = Nid(ffi::NID_aes_192_gcm);
730
    pub const AES_192_CCM: Nid = Nid(ffi::NID_aes_192_ccm);
731
    pub const ID_AES192_WRAP_PAD: Nid = Nid(ffi::NID_id_aes192_wrap_pad);
732
    pub const AES_256_ECB: Nid = Nid(ffi::NID_aes_256_ecb);
733
    pub const AES_256_CBC: Nid = Nid(ffi::NID_aes_256_cbc);
734
    pub const AES_256_OFB128: Nid = Nid(ffi::NID_aes_256_ofb128);
735
    pub const AES_256_CFB128: Nid = Nid(ffi::NID_aes_256_cfb128);
736
    pub const ID_AES256_WRAP: Nid = Nid(ffi::NID_id_aes256_wrap);
737
    pub const AES_256_GCM: Nid = Nid(ffi::NID_aes_256_gcm);
738
    pub const AES_256_CCM: Nid = Nid(ffi::NID_aes_256_ccm);
739
    pub const ID_AES256_WRAP_PAD: Nid = Nid(ffi::NID_id_aes256_wrap_pad);
740
    pub const AES_128_CFB1: Nid = Nid(ffi::NID_aes_128_cfb1);
741
    pub const AES_192_CFB1: Nid = Nid(ffi::NID_aes_192_cfb1);
742
    pub const AES_256_CFB1: Nid = Nid(ffi::NID_aes_256_cfb1);
743
    pub const AES_128_CFB8: Nid = Nid(ffi::NID_aes_128_cfb8);
744
    pub const AES_192_CFB8: Nid = Nid(ffi::NID_aes_192_cfb8);
745
    pub const AES_256_CFB8: Nid = Nid(ffi::NID_aes_256_cfb8);
746
    pub const AES_128_CTR: Nid = Nid(ffi::NID_aes_128_ctr);
747
    pub const AES_192_CTR: Nid = Nid(ffi::NID_aes_192_ctr);
748
    pub const AES_256_CTR: Nid = Nid(ffi::NID_aes_256_ctr);
749
    pub const AES_128_XTS: Nid = Nid(ffi::NID_aes_128_xts);
750
    pub const AES_256_XTS: Nid = Nid(ffi::NID_aes_256_xts);
751
    pub const DES_CFB1: Nid = Nid(ffi::NID_des_cfb1);
752
    pub const DES_CFB8: Nid = Nid(ffi::NID_des_cfb8);
753
    pub const DES_EDE3_CFB1: Nid = Nid(ffi::NID_des_ede3_cfb1);
754
    pub const DES_EDE3_CFB8: Nid = Nid(ffi::NID_des_ede3_cfb8);
755
    pub const SHA256: Nid = Nid(ffi::NID_sha256);
756
    pub const SHA384: Nid = Nid(ffi::NID_sha384);
757
    pub const SHA512: Nid = Nid(ffi::NID_sha512);
758
    pub const SHA224: Nid = Nid(ffi::NID_sha224);
759
    pub const DSA_WITH_SHA224: Nid = Nid(ffi::NID_dsa_with_SHA224);
760
    pub const DSA_WITH_SHA256: Nid = Nid(ffi::NID_dsa_with_SHA256);
761
    pub const HOLD_INSTRUCTION_CODE: Nid = Nid(ffi::NID_hold_instruction_code);
762
    pub const HOLD_INSTRUCTION_NONE: Nid = Nid(ffi::NID_hold_instruction_none);
763
    pub const HOLD_INSTRUCTION_CALL_ISSUER: Nid = Nid(ffi::NID_hold_instruction_call_issuer);
764
    pub const HOLD_INSTRUCTION_REJECT: Nid = Nid(ffi::NID_hold_instruction_reject);
765
    pub const DATA: Nid = Nid(ffi::NID_data);
766
    pub const PSS: Nid = Nid(ffi::NID_pss);
767
    pub const UCL: Nid = Nid(ffi::NID_ucl);
768
    pub const PILOT: Nid = Nid(ffi::NID_pilot);
769
    pub const PILOTATTRIBUTETYPE: Nid = Nid(ffi::NID_pilotAttributeType);
770
    pub const PILOTATTRIBUTESYNTAX: Nid = Nid(ffi::NID_pilotAttributeSyntax);
771
    pub const PILOTOBJECTCLASS: Nid = Nid(ffi::NID_pilotObjectClass);
772
    pub const PILOTGROUPS: Nid = Nid(ffi::NID_pilotGroups);
773
    pub const IA5STRINGSYNTAX: Nid = Nid(ffi::NID_iA5StringSyntax);
774
    pub const CASEIGNOREIA5STRINGSYNTAX: Nid = Nid(ffi::NID_caseIgnoreIA5StringSyntax);
775
    pub const PILOTOBJECT: Nid = Nid(ffi::NID_pilotObject);
776
    pub const PILOTPERSON: Nid = Nid(ffi::NID_pilotPerson);
777
    pub const ACCOUNT: Nid = Nid(ffi::NID_account);
778
    pub const DOCUMENT: Nid = Nid(ffi::NID_document);
779
    pub const ROOM: Nid = Nid(ffi::NID_room);
780
    pub const DOCUMENTSERIES: Nid = Nid(ffi::NID_documentSeries);
781
    pub const DOMAIN: Nid = Nid(ffi::NID_Domain);
782
    pub const RFC822LOCALPART: Nid = Nid(ffi::NID_rFC822localPart);
783
    pub const DNSDOMAIN: Nid = Nid(ffi::NID_dNSDomain);
784
    pub const DOMAINRELATEDOBJECT: Nid = Nid(ffi::NID_domainRelatedObject);
785
    pub const FRIENDLYCOUNTRY: Nid = Nid(ffi::NID_friendlyCountry);
786
    pub const SIMPLESECURITYOBJECT: Nid = Nid(ffi::NID_simpleSecurityObject);
787
    pub const PILOTORGANIZATION: Nid = Nid(ffi::NID_pilotOrganization);
788
    pub const PILOTDSA: Nid = Nid(ffi::NID_pilotDSA);
789
    pub const QUALITYLABELLEDDATA: Nid = Nid(ffi::NID_qualityLabelledData);
790
    pub const USERID: Nid = Nid(ffi::NID_userId);
791
    pub const TEXTENCODEDORADDRESS: Nid = Nid(ffi::NID_textEncodedORAddress);
792
    pub const RFC822MAILBOX: Nid = Nid(ffi::NID_rfc822Mailbox);
793
    pub const INFO: Nid = Nid(ffi::NID_info);
794
    pub const FAVOURITEDRINK: Nid = Nid(ffi::NID_favouriteDrink);
795
    pub const ROOMNUMBER: Nid = Nid(ffi::NID_roomNumber);
796
    pub const PHOTO: Nid = Nid(ffi::NID_photo);
797
    pub const USERCLASS: Nid = Nid(ffi::NID_userClass);
798
    pub const HOST: Nid = Nid(ffi::NID_host);
799
    pub const MANAGER: Nid = Nid(ffi::NID_manager);
800
    pub const DOCUMENTIDENTIFIER: Nid = Nid(ffi::NID_documentIdentifier);
801
    pub const DOCUMENTTITLE: Nid = Nid(ffi::NID_documentTitle);
802
    pub const DOCUMENTVERSION: Nid = Nid(ffi::NID_documentVersion);
803
    pub const DOCUMENTAUTHOR: Nid = Nid(ffi::NID_documentAuthor);
804
    pub const DOCUMENTLOCATION: Nid = Nid(ffi::NID_documentLocation);
805
    pub const HOMETELEPHONENUMBER: Nid = Nid(ffi::NID_homeTelephoneNumber);
806
    pub const SECRETARY: Nid = Nid(ffi::NID_secretary);
807
    pub const OTHERMAILBOX: Nid = Nid(ffi::NID_otherMailbox);
808
    pub const LASTMODIFIEDTIME: Nid = Nid(ffi::NID_lastModifiedTime);
809
    pub const LASTMODIFIEDBY: Nid = Nid(ffi::NID_lastModifiedBy);
810
    pub const DOMAINCOMPONENT: Nid = Nid(ffi::NID_domainComponent);
811
    pub const ARECORD: Nid = Nid(ffi::NID_aRecord);
812
    pub const PILOTATTRIBUTETYPE27: Nid = Nid(ffi::NID_pilotAttributeType27);
813
    pub const MXRECORD: Nid = Nid(ffi::NID_mXRecord);
814
    pub const NSRECORD: Nid = Nid(ffi::NID_nSRecord);
815
    pub const SOARECORD: Nid = Nid(ffi::NID_sOARecord);
816
    pub const CNAMERECORD: Nid = Nid(ffi::NID_cNAMERecord);
817
    pub const ASSOCIATEDDOMAIN: Nid = Nid(ffi::NID_associatedDomain);
818
    pub const ASSOCIATEDNAME: Nid = Nid(ffi::NID_associatedName);
819
    pub const HOMEPOSTALADDRESS: Nid = Nid(ffi::NID_homePostalAddress);
820
    pub const PERSONALTITLE: Nid = Nid(ffi::NID_personalTitle);
821
    pub const MOBILETELEPHONENUMBER: Nid = Nid(ffi::NID_mobileTelephoneNumber);
822
    pub const PAGERTELEPHONENUMBER: Nid = Nid(ffi::NID_pagerTelephoneNumber);
823
    pub const FRIENDLYCOUNTRYNAME: Nid = Nid(ffi::NID_friendlyCountryName);
824
    pub const ORGANIZATIONALSTATUS: Nid = Nid(ffi::NID_organizationalStatus);
825
    pub const JANETMAILBOX: Nid = Nid(ffi::NID_janetMailbox);
826
    pub const MAILPREFERENCEOPTION: Nid = Nid(ffi::NID_mailPreferenceOption);
827
    pub const BUILDINGNAME: Nid = Nid(ffi::NID_buildingName);
828
    pub const DSAQUALITY: Nid = Nid(ffi::NID_dSAQuality);
829
    pub const SINGLELEVELQUALITY: Nid = Nid(ffi::NID_singleLevelQuality);
830
    pub const SUBTREEMINIMUMQUALITY: Nid = Nid(ffi::NID_subtreeMinimumQuality);
831
    pub const SUBTREEMAXIMUMQUALITY: Nid = Nid(ffi::NID_subtreeMaximumQuality);
832
    pub const PERSONALSIGNATURE: Nid = Nid(ffi::NID_personalSignature);
833
    pub const DITREDIRECT: Nid = Nid(ffi::NID_dITRedirect);
834
    pub const AUDIO: Nid = Nid(ffi::NID_audio);
835
    pub const DOCUMENTPUBLISHER: Nid = Nid(ffi::NID_documentPublisher);
836
    pub const ID_SET: Nid = Nid(ffi::NID_id_set);
837
    pub const SET_CTYPE: Nid = Nid(ffi::NID_set_ctype);
838
    pub const SET_MSGEXT: Nid = Nid(ffi::NID_set_msgExt);
839
    pub const SET_ATTR: Nid = Nid(ffi::NID_set_attr);
840
    pub const SET_POLICY: Nid = Nid(ffi::NID_set_policy);
841
    pub const SET_CERTEXT: Nid = Nid(ffi::NID_set_certExt);
842
    pub const SET_BRAND: Nid = Nid(ffi::NID_set_brand);
843
    pub const SETCT_PANDATA: Nid = Nid(ffi::NID_setct_PANData);
844
    pub const SETCT_PANTOKEN: Nid = Nid(ffi::NID_setct_PANToken);
845
    pub const SETCT_PANONLY: Nid = Nid(ffi::NID_setct_PANOnly);
846
    pub const SETCT_OIDATA: Nid = Nid(ffi::NID_setct_OIData);
847
    pub const SETCT_PI: Nid = Nid(ffi::NID_setct_PI);
848
    pub const SETCT_PIDATA: Nid = Nid(ffi::NID_setct_PIData);
849
    pub const SETCT_PIDATAUNSIGNED: Nid = Nid(ffi::NID_setct_PIDataUnsigned);
850
    pub const SETCT_HODINPUT: Nid = Nid(ffi::NID_setct_HODInput);
851
    pub const SETCT_AUTHRESBAGGAGE: Nid = Nid(ffi::NID_setct_AuthResBaggage);
852
    pub const SETCT_AUTHREVREQBAGGAGE: Nid = Nid(ffi::NID_setct_AuthRevReqBaggage);
853
    pub const SETCT_AUTHREVRESBAGGAGE: Nid = Nid(ffi::NID_setct_AuthRevResBaggage);
854
    pub const SETCT_CAPTOKENSEQ: Nid = Nid(ffi::NID_setct_CapTokenSeq);
855
    pub const SETCT_PINITRESDATA: Nid = Nid(ffi::NID_setct_PInitResData);
856
    pub const SETCT_PI_TBS: Nid = Nid(ffi::NID_setct_PI_TBS);
857
    pub const SETCT_PRESDATA: Nid = Nid(ffi::NID_setct_PResData);
858
    pub const SETCT_AUTHREQTBS: Nid = Nid(ffi::NID_setct_AuthReqTBS);
859
    pub const SETCT_AUTHRESTBS: Nid = Nid(ffi::NID_setct_AuthResTBS);
860
    pub const SETCT_AUTHRESTBSX: Nid = Nid(ffi::NID_setct_AuthResTBSX);
861
    pub const SETCT_AUTHTOKENTBS: Nid = Nid(ffi::NID_setct_AuthTokenTBS);
862
    pub const SETCT_CAPTOKENDATA: Nid = Nid(ffi::NID_setct_CapTokenData);
863
    pub const SETCT_CAPTOKENTBS: Nid = Nid(ffi::NID_setct_CapTokenTBS);
864
    pub const SETCT_ACQCARDCODEMSG: Nid = Nid(ffi::NID_setct_AcqCardCodeMsg);
865
    pub const SETCT_AUTHREVREQTBS: Nid = Nid(ffi::NID_setct_AuthRevReqTBS);
866
    pub const SETCT_AUTHREVRESDATA: Nid = Nid(ffi::NID_setct_AuthRevResData);
867
    pub const SETCT_AUTHREVRESTBS: Nid = Nid(ffi::NID_setct_AuthRevResTBS);
868
    pub const SETCT_CAPREQTBS: Nid = Nid(ffi::NID_setct_CapReqTBS);
869
    pub const SETCT_CAPREQTBSX: Nid = Nid(ffi::NID_setct_CapReqTBSX);
870
    pub const SETCT_CAPRESDATA: Nid = Nid(ffi::NID_setct_CapResData);
871
    pub const SETCT_CAPREVREQTBS: Nid = Nid(ffi::NID_setct_CapRevReqTBS);
872
    pub const SETCT_CAPREVREQTBSX: Nid = Nid(ffi::NID_setct_CapRevReqTBSX);
873
    pub const SETCT_CAPREVRESDATA: Nid = Nid(ffi::NID_setct_CapRevResData);
874
    pub const SETCT_CREDREQTBS: Nid = Nid(ffi::NID_setct_CredReqTBS);
875
    pub const SETCT_CREDREQTBSX: Nid = Nid(ffi::NID_setct_CredReqTBSX);
876
    pub const SETCT_CREDRESDATA: Nid = Nid(ffi::NID_setct_CredResData);
877
    pub const SETCT_CREDREVREQTBS: Nid = Nid(ffi::NID_setct_CredRevReqTBS);
878
    pub const SETCT_CREDREVREQTBSX: Nid = Nid(ffi::NID_setct_CredRevReqTBSX);
879
    pub const SETCT_CREDREVRESDATA: Nid = Nid(ffi::NID_setct_CredRevResData);
880
    pub const SETCT_PCERTREQDATA: Nid = Nid(ffi::NID_setct_PCertReqData);
881
    pub const SETCT_PCERTRESTBS: Nid = Nid(ffi::NID_setct_PCertResTBS);
882
    pub const SETCT_BATCHADMINREQDATA: Nid = Nid(ffi::NID_setct_BatchAdminReqData);
883
    pub const SETCT_BATCHADMINRESDATA: Nid = Nid(ffi::NID_setct_BatchAdminResData);
884
    pub const SETCT_CARDCINITRESTBS: Nid = Nid(ffi::NID_setct_CardCInitResTBS);
885
    pub const SETCT_MEAQCINITRESTBS: Nid = Nid(ffi::NID_setct_MeAqCInitResTBS);
886
    pub const SETCT_REGFORMRESTBS: Nid = Nid(ffi::NID_setct_RegFormResTBS);
887
    pub const SETCT_CERTREQDATA: Nid = Nid(ffi::NID_setct_CertReqData);
888
    pub const SETCT_CERTREQTBS: Nid = Nid(ffi::NID_setct_CertReqTBS);
889
    pub const SETCT_CERTRESDATA: Nid = Nid(ffi::NID_setct_CertResData);
890
    pub const SETCT_CERTINQREQTBS: Nid = Nid(ffi::NID_setct_CertInqReqTBS);
891
    pub const SETCT_ERRORTBS: Nid = Nid(ffi::NID_setct_ErrorTBS);
892
    pub const SETCT_PIDUALSIGNEDTBE: Nid = Nid(ffi::NID_setct_PIDualSignedTBE);
893
    pub const SETCT_PIUNSIGNEDTBE: Nid = Nid(ffi::NID_setct_PIUnsignedTBE);
894
    pub const SETCT_AUTHREQTBE: Nid = Nid(ffi::NID_setct_AuthReqTBE);
895
    pub const SETCT_AUTHRESTBE: Nid = Nid(ffi::NID_setct_AuthResTBE);
896
    pub const SETCT_AUTHRESTBEX: Nid = Nid(ffi::NID_setct_AuthResTBEX);
897
    pub const SETCT_AUTHTOKENTBE: Nid = Nid(ffi::NID_setct_AuthTokenTBE);
898
    pub const SETCT_CAPTOKENTBE: Nid = Nid(ffi::NID_setct_CapTokenTBE);
899
    pub const SETCT_CAPTOKENTBEX: Nid = Nid(ffi::NID_setct_CapTokenTBEX);
900
    pub const SETCT_ACQCARDCODEMSGTBE: Nid = Nid(ffi::NID_setct_AcqCardCodeMsgTBE);
901
    pub const SETCT_AUTHREVREQTBE: Nid = Nid(ffi::NID_setct_AuthRevReqTBE);
902
    pub const SETCT_AUTHREVRESTBE: Nid = Nid(ffi::NID_setct_AuthRevResTBE);
903
    pub const SETCT_AUTHREVRESTBEB: Nid = Nid(ffi::NID_setct_AuthRevResTBEB);
904
    pub const SETCT_CAPREQTBE: Nid = Nid(ffi::NID_setct_CapReqTBE);
905
    pub const SETCT_CAPREQTBEX: Nid = Nid(ffi::NID_setct_CapReqTBEX);
906
    pub const SETCT_CAPRESTBE: Nid = Nid(ffi::NID_setct_CapResTBE);
907
    pub const SETCT_CAPREVREQTBE: Nid = Nid(ffi::NID_setct_CapRevReqTBE);
908
    pub const SETCT_CAPREVREQTBEX: Nid = Nid(ffi::NID_setct_CapRevReqTBEX);
909
    pub const SETCT_CAPREVRESTBE: Nid = Nid(ffi::NID_setct_CapRevResTBE);
910
    pub const SETCT_CREDREQTBE: Nid = Nid(ffi::NID_setct_CredReqTBE);
911
    pub const SETCT_CREDREQTBEX: Nid = Nid(ffi::NID_setct_CredReqTBEX);
912
    pub const SETCT_CREDRESTBE: Nid = Nid(ffi::NID_setct_CredResTBE);
913
    pub const SETCT_CREDREVREQTBE: Nid = Nid(ffi::NID_setct_CredRevReqTBE);
914
    pub const SETCT_CREDREVREQTBEX: Nid = Nid(ffi::NID_setct_CredRevReqTBEX);
915
    pub const SETCT_CREDREVRESTBE: Nid = Nid(ffi::NID_setct_CredRevResTBE);
916
    pub const SETCT_BATCHADMINREQTBE: Nid = Nid(ffi::NID_setct_BatchAdminReqTBE);
917
    pub const SETCT_BATCHADMINRESTBE: Nid = Nid(ffi::NID_setct_BatchAdminResTBE);
918
    pub const SETCT_REGFORMREQTBE: Nid = Nid(ffi::NID_setct_RegFormReqTBE);
919
    pub const SETCT_CERTREQTBE: Nid = Nid(ffi::NID_setct_CertReqTBE);
920
    pub const SETCT_CERTREQTBEX: Nid = Nid(ffi::NID_setct_CertReqTBEX);
921
    pub const SETCT_CERTRESTBE: Nid = Nid(ffi::NID_setct_CertResTBE);
922
    pub const SETCT_CRLNOTIFICATIONTBS: Nid = Nid(ffi::NID_setct_CRLNotificationTBS);
923
    pub const SETCT_CRLNOTIFICATIONRESTBS: Nid = Nid(ffi::NID_setct_CRLNotificationResTBS);
924
    pub const SETCT_BCIDISTRIBUTIONTBS: Nid = Nid(ffi::NID_setct_BCIDistributionTBS);
925
    pub const SETEXT_GENCRYPT: Nid = Nid(ffi::NID_setext_genCrypt);
926
    pub const SETEXT_MIAUTH: Nid = Nid(ffi::NID_setext_miAuth);
927
    pub const SETEXT_PINSECURE: Nid = Nid(ffi::NID_setext_pinSecure);
928
    pub const SETEXT_PINANY: Nid = Nid(ffi::NID_setext_pinAny);
929
    pub const SETEXT_TRACK2: Nid = Nid(ffi::NID_setext_track2);
930
    pub const SETEXT_CV: Nid = Nid(ffi::NID_setext_cv);
931
    pub const SET_POLICY_ROOT: Nid = Nid(ffi::NID_set_policy_root);
932
    pub const SETCEXT_HASHEDROOT: Nid = Nid(ffi::NID_setCext_hashedRoot);
933
    pub const SETCEXT_CERTTYPE: Nid = Nid(ffi::NID_setCext_certType);
934
    pub const SETCEXT_MERCHDATA: Nid = Nid(ffi::NID_setCext_merchData);
935
    pub const SETCEXT_CCERTREQUIRED: Nid = Nid(ffi::NID_setCext_cCertRequired);
936
    pub const SETCEXT_TUNNELING: Nid = Nid(ffi::NID_setCext_tunneling);
937
    pub const SETCEXT_SETEXT: Nid = Nid(ffi::NID_setCext_setExt);
938
    pub const SETCEXT_SETQUALF: Nid = Nid(ffi::NID_setCext_setQualf);
939
    pub const SETCEXT_PGWYCAPABILITIES: Nid = Nid(ffi::NID_setCext_PGWYcapabilities);
940
    pub const SETCEXT_TOKENIDENTIFIER: Nid = Nid(ffi::NID_setCext_TokenIdentifier);
941
    pub const SETCEXT_TRACK2DATA: Nid = Nid(ffi::NID_setCext_Track2Data);
942
    pub const SETCEXT_TOKENTYPE: Nid = Nid(ffi::NID_setCext_TokenType);
943
    pub const SETCEXT_ISSUERCAPABILITIES: Nid = Nid(ffi::NID_setCext_IssuerCapabilities);
944
    pub const SETATTR_CERT: Nid = Nid(ffi::NID_setAttr_Cert);
945
    pub const SETATTR_PGWYCAP: Nid = Nid(ffi::NID_setAttr_PGWYcap);
946
    pub const SETATTR_TOKENTYPE: Nid = Nid(ffi::NID_setAttr_TokenType);
947
    pub const SETATTR_ISSCAP: Nid = Nid(ffi::NID_setAttr_IssCap);
948
    pub const SET_ROOTKEYTHUMB: Nid = Nid(ffi::NID_set_rootKeyThumb);
949
    pub const SET_ADDPOLICY: Nid = Nid(ffi::NID_set_addPolicy);
950
    pub const SETATTR_TOKEN_EMV: Nid = Nid(ffi::NID_setAttr_Token_EMV);
951
    pub const SETATTR_TOKEN_B0PRIME: Nid = Nid(ffi::NID_setAttr_Token_B0Prime);
952
    pub const SETATTR_ISSCAP_CVM: Nid = Nid(ffi::NID_setAttr_IssCap_CVM);
953
    pub const SETATTR_ISSCAP_T2: Nid = Nid(ffi::NID_setAttr_IssCap_T2);
954
    pub const SETATTR_ISSCAP_SIG: Nid = Nid(ffi::NID_setAttr_IssCap_Sig);
955
    pub const SETATTR_GENCRYPTGRM: Nid = Nid(ffi::NID_setAttr_GenCryptgrm);
956
    pub const SETATTR_T2ENC: Nid = Nid(ffi::NID_setAttr_T2Enc);
957
    pub const SETATTR_T2CLEARTXT: Nid = Nid(ffi::NID_setAttr_T2cleartxt);
958
    pub const SETATTR_TOKICCSIG: Nid = Nid(ffi::NID_setAttr_TokICCsig);
959
    pub const SETATTR_SECDEVSIG: Nid = Nid(ffi::NID_setAttr_SecDevSig);
960
    pub const SET_BRAND_IATA_ATA: Nid = Nid(ffi::NID_set_brand_IATA_ATA);
961
    pub const SET_BRAND_DINERS: Nid = Nid(ffi::NID_set_brand_Diners);
962
    pub const SET_BRAND_AMERICANEXPRESS: Nid = Nid(ffi::NID_set_brand_AmericanExpress);
963
    pub const SET_BRAND_JCB: Nid = Nid(ffi::NID_set_brand_JCB);
964
    pub const SET_BRAND_VISA: Nid = Nid(ffi::NID_set_brand_Visa);
965
    pub const SET_BRAND_MASTERCARD: Nid = Nid(ffi::NID_set_brand_MasterCard);
966
    pub const SET_BRAND_NOVUS: Nid = Nid(ffi::NID_set_brand_Novus);
967
    pub const DES_CDMF: Nid = Nid(ffi::NID_des_cdmf);
968
    pub const RSAOAEPENCRYPTIONSET: Nid = Nid(ffi::NID_rsaOAEPEncryptionSET);
969
    pub const IPSEC3: Nid = Nid(ffi::NID_ipsec3);
970
    pub const IPSEC4: Nid = Nid(ffi::NID_ipsec4);
971
    pub const WHIRLPOOL: Nid = Nid(ffi::NID_whirlpool);
972
    pub const CRYPTOPRO: Nid = Nid(ffi::NID_cryptopro);
973
    pub const CRYPTOCOM: Nid = Nid(ffi::NID_cryptocom);
974
    pub const ID_GOSTR3411_94_WITH_GOSTR3410_2001: Nid =
975
        Nid(ffi::NID_id_GostR3411_94_with_GostR3410_2001);
976
    pub const ID_GOSTR3411_94_WITH_GOSTR3410_94: Nid =
977
        Nid(ffi::NID_id_GostR3411_94_with_GostR3410_94);
978
    pub const ID_GOSTR3411_94: Nid = Nid(ffi::NID_id_GostR3411_94);
979
    pub const ID_HMACGOSTR3411_94: Nid = Nid(ffi::NID_id_HMACGostR3411_94);
980
    pub const ID_GOSTR3410_2001: Nid = Nid(ffi::NID_id_GostR3410_2001);
981
    pub const ID_GOSTR3410_94: Nid = Nid(ffi::NID_id_GostR3410_94);
982
    pub const ID_GOST28147_89: Nid = Nid(ffi::NID_id_Gost28147_89);
983
    pub const GOST89_CNT: Nid = Nid(ffi::NID_gost89_cnt);
984
    pub const ID_GOST28147_89_MAC: Nid = Nid(ffi::NID_id_Gost28147_89_MAC);
985
    pub const ID_GOSTR3411_94_PRF: Nid = Nid(ffi::NID_id_GostR3411_94_prf);
986
    pub const ID_GOSTR3410_2001DH: Nid = Nid(ffi::NID_id_GostR3410_2001DH);
987
    pub const ID_GOSTR3410_94DH: Nid = Nid(ffi::NID_id_GostR3410_94DH);
988
    pub const ID_GOST28147_89_CRYPTOPRO_KEYMESHING: Nid =
989
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_KeyMeshing);
990
    pub const ID_GOST28147_89_NONE_KEYMESHING: Nid = Nid(ffi::NID_id_Gost28147_89_None_KeyMeshing);
991
    pub const ID_GOSTR3411_94_TESTPARAMSET: Nid = Nid(ffi::NID_id_GostR3411_94_TestParamSet);
992
    pub const ID_GOSTR3411_94_CRYPTOPROPARAMSET: Nid =
993
        Nid(ffi::NID_id_GostR3411_94_CryptoProParamSet);
994
    pub const ID_GOST28147_89_TESTPARAMSET: Nid = Nid(ffi::NID_id_Gost28147_89_TestParamSet);
995
    pub const ID_GOST28147_89_CRYPTOPRO_A_PARAMSET: Nid =
996
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_A_ParamSet);
997
    pub const ID_GOST28147_89_CRYPTOPRO_B_PARAMSET: Nid =
998
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_B_ParamSet);
999
    pub const ID_GOST28147_89_CRYPTOPRO_C_PARAMSET: Nid =
1000
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_C_ParamSet);
1001
    pub const ID_GOST28147_89_CRYPTOPRO_D_PARAMSET: Nid =
1002
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_D_ParamSet);
1003
    pub const ID_GOST28147_89_CRYPTOPRO_OSCAR_1_1_PARAMSET: Nid =
1004
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet);
1005
    pub const ID_GOST28147_89_CRYPTOPRO_OSCAR_1_0_PARAMSET: Nid =
1006
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet);
1007
    pub const ID_GOST28147_89_CRYPTOPRO_RIC_1_PARAMSET: Nid =
1008
        Nid(ffi::NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet);
1009
    pub const ID_GOSTR3410_94_TESTPARAMSET: Nid = Nid(ffi::NID_id_GostR3410_94_TestParamSet);
1010
    pub const ID_GOSTR3410_94_CRYPTOPRO_A_PARAMSET: Nid =
1011
        Nid(ffi::NID_id_GostR3410_94_CryptoPro_A_ParamSet);
1012
    pub const ID_GOSTR3410_94_CRYPTOPRO_B_PARAMSET: Nid =
1013
        Nid(ffi::NID_id_GostR3410_94_CryptoPro_B_ParamSet);
1014
    pub const ID_GOSTR3410_94_CRYPTOPRO_C_PARAMSET: Nid =
1015
        Nid(ffi::NID_id_GostR3410_94_CryptoPro_C_ParamSet);
1016
    pub const ID_GOSTR3410_94_CRYPTOPRO_D_PARAMSET: Nid =
1017
        Nid(ffi::NID_id_GostR3410_94_CryptoPro_D_ParamSet);
1018
    pub const ID_GOSTR3410_94_CRYPTOPRO_XCHA_PARAMSET: Nid =
1019
        Nid(ffi::NID_id_GostR3410_94_CryptoPro_XchA_ParamSet);
1020
    pub const ID_GOSTR3410_94_CRYPTOPRO_XCHB_PARAMSET: Nid =
1021
        Nid(ffi::NID_id_GostR3410_94_CryptoPro_XchB_ParamSet);
1022
    pub const ID_GOSTR3410_94_CRYPTOPRO_XCHC_PARAMSET: Nid =
1023
        Nid(ffi::NID_id_GostR3410_94_CryptoPro_XchC_ParamSet);
1024
    pub const ID_GOSTR3410_2001_TESTPARAMSET: Nid = Nid(ffi::NID_id_GostR3410_2001_TestParamSet);
1025
    pub const ID_GOSTR3410_2001_CRYPTOPRO_A_PARAMSET: Nid =
1026
        Nid(ffi::NID_id_GostR3410_2001_CryptoPro_A_ParamSet);
1027
    pub const ID_GOSTR3410_2001_CRYPTOPRO_B_PARAMSET: Nid =
1028
        Nid(ffi::NID_id_GostR3410_2001_CryptoPro_B_ParamSet);
1029
    pub const ID_GOSTR3410_2001_CRYPTOPRO_C_PARAMSET: Nid =
1030
        Nid(ffi::NID_id_GostR3410_2001_CryptoPro_C_ParamSet);
1031
    pub const ID_GOSTR3410_2001_CRYPTOPRO_XCHA_PARAMSET: Nid =
1032
        Nid(ffi::NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet);
1033
    pub const ID_GOSTR3410_2001_CRYPTOPRO_XCHB_PARAMSET: Nid =
1034
        Nid(ffi::NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet);
1035
    pub const ID_GOSTR3410_94_A: Nid = Nid(ffi::NID_id_GostR3410_94_a);
1036
    pub const ID_GOSTR3410_94_ABIS: Nid = Nid(ffi::NID_id_GostR3410_94_aBis);
1037
    pub const ID_GOSTR3410_94_B: Nid = Nid(ffi::NID_id_GostR3410_94_b);
1038
    pub const ID_GOSTR3410_94_BBIS: Nid = Nid(ffi::NID_id_GostR3410_94_bBis);
1039
    pub const ID_GOST28147_89_CC: Nid = Nid(ffi::NID_id_Gost28147_89_cc);
1040
    pub const ID_GOSTR3410_94_CC: Nid = Nid(ffi::NID_id_GostR3410_94_cc);
1041
    pub const ID_GOSTR3410_2001_CC: Nid = Nid(ffi::NID_id_GostR3410_2001_cc);
1042
    pub const ID_GOSTR3411_94_WITH_GOSTR3410_94_CC: Nid =
1043
        Nid(ffi::NID_id_GostR3411_94_with_GostR3410_94_cc);
1044
    pub const ID_GOSTR3411_94_WITH_GOSTR3410_2001_CC: Nid =
1045
        Nid(ffi::NID_id_GostR3411_94_with_GostR3410_2001_cc);
1046
    pub const ID_GOSTR3410_2001_PARAMSET_CC: Nid = Nid(ffi::NID_id_GostR3410_2001_ParamSet_cc);
1047
    pub const CAMELLIA_128_CBC: Nid = Nid(ffi::NID_camellia_128_cbc);
1048
    pub const CAMELLIA_192_CBC: Nid = Nid(ffi::NID_camellia_192_cbc);
1049
    pub const CAMELLIA_256_CBC: Nid = Nid(ffi::NID_camellia_256_cbc);
1050
    pub const ID_CAMELLIA128_WRAP: Nid = Nid(ffi::NID_id_camellia128_wrap);
1051
    pub const ID_CAMELLIA192_WRAP: Nid = Nid(ffi::NID_id_camellia192_wrap);
1052
    pub const ID_CAMELLIA256_WRAP: Nid = Nid(ffi::NID_id_camellia256_wrap);
1053
    pub const CAMELLIA_128_ECB: Nid = Nid(ffi::NID_camellia_128_ecb);
1054
    pub const CAMELLIA_128_OFB128: Nid = Nid(ffi::NID_camellia_128_ofb128);
1055
    pub const CAMELLIA_128_CFB128: Nid = Nid(ffi::NID_camellia_128_cfb128);
1056
    pub const CAMELLIA_192_ECB: Nid = Nid(ffi::NID_camellia_192_ecb);
1057
    pub const CAMELLIA_192_OFB128: Nid = Nid(ffi::NID_camellia_192_ofb128);
1058
    pub const CAMELLIA_192_CFB128: Nid = Nid(ffi::NID_camellia_192_cfb128);
1059
    pub const CAMELLIA_256_ECB: Nid = Nid(ffi::NID_camellia_256_ecb);
1060
    pub const CAMELLIA_256_OFB128: Nid = Nid(ffi::NID_camellia_256_ofb128);
1061
    pub const CAMELLIA_256_CFB128: Nid = Nid(ffi::NID_camellia_256_cfb128);
1062
    pub const CAMELLIA_128_CFB1: Nid = Nid(ffi::NID_camellia_128_cfb1);
1063
    pub const CAMELLIA_192_CFB1: Nid = Nid(ffi::NID_camellia_192_cfb1);
1064
    pub const CAMELLIA_256_CFB1: Nid = Nid(ffi::NID_camellia_256_cfb1);
1065
    pub const CAMELLIA_128_CFB8: Nid = Nid(ffi::NID_camellia_128_cfb8);
1066
    pub const CAMELLIA_192_CFB8: Nid = Nid(ffi::NID_camellia_192_cfb8);
1067
    pub const CAMELLIA_256_CFB8: Nid = Nid(ffi::NID_camellia_256_cfb8);
1068
    pub const KISA: Nid = Nid(ffi::NID_kisa);
1069
    pub const SEED_ECB: Nid = Nid(ffi::NID_seed_ecb);
1070
    pub const SEED_CBC: Nid = Nid(ffi::NID_seed_cbc);
1071
    pub const SEED_CFB128: Nid = Nid(ffi::NID_seed_cfb128);
1072
    pub const SEED_OFB128: Nid = Nid(ffi::NID_seed_ofb128);
1073
    pub const HMAC: Nid = Nid(ffi::NID_hmac);
1074
    pub const CMAC: Nid = Nid(ffi::NID_cmac);
1075
    pub const RC4_HMAC_MD5: Nid = Nid(ffi::NID_rc4_hmac_md5);
1076
    pub const AES_128_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_128_cbc_hmac_sha1);
1077
    pub const AES_192_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_192_cbc_hmac_sha1);
1078
    pub const AES_256_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_256_cbc_hmac_sha1);
1079
    #[cfg(ossl111)]
1080
    pub const SM2: Nid = Nid(ffi::NID_sm2);
1081
    #[cfg(any(ossl111, libressl291))]
1082
    pub const SM3: Nid = Nid(ffi::NID_sm3);
1083
    #[cfg(any(ossl111, libressl380))]
1084
    pub const SHA3_224: Nid = Nid(ffi::NID_sha3_224);
1085
    #[cfg(any(ossl111, libressl380))]
1086
    pub const SHA3_256: Nid = Nid(ffi::NID_sha3_256);
1087
    #[cfg(any(ossl111, libressl380))]
1088
    pub const SHA3_384: Nid = Nid(ffi::NID_sha3_384);
1089
    #[cfg(any(ossl111, libressl380))]
1090
    pub const SHA3_512: Nid = Nid(ffi::NID_sha3_512);
1091
    #[cfg(ossl111)]
1092
    pub const SHAKE128: Nid = Nid(ffi::NID_shake128);
1093
    #[cfg(ossl111)]
1094
    pub const SHAKE256: Nid = Nid(ffi::NID_shake256);
1095
    #[cfg(any(ossl110, libressl271))]
1096
    pub const CHACHA20_POLY1305: Nid = Nid(ffi::NID_chacha20_poly1305);
1097
}
1098
1099
#[cfg(test)]
1100
mod test {
1101
    use super::Nid;
1102
1103
    #[test]
1104
    fn signature_digest() {
1105
        let algs = Nid::SHA256WITHRSAENCRYPTION.signature_algorithms().unwrap();
1106
        assert_eq!(algs.digest, Nid::SHA256);
1107
        assert_eq!(algs.pkey, Nid::RSAENCRYPTION);
1108
    }
1109
1110
    #[test]
1111
    fn test_long_name_conversion() {
1112
        let common_name = Nid::COMMONNAME;
1113
        let organizational_unit_name = Nid::ORGANIZATIONALUNITNAME;
1114
        let aes256_cbc_hmac_sha1 = Nid::AES_256_CBC_HMAC_SHA1;
1115
        let id_cmc_lrapopwitness = Nid::ID_CMC_LRAPOPWITNESS;
1116
        let ms_ctl_sign = Nid::MS_CTL_SIGN;
1117
        let undefined_nid = Nid::from_raw(118);
1118
1119
        assert_eq!(common_name.long_name().unwrap(), "commonName");
1120
        assert_eq!(
1121
            organizational_unit_name.long_name().unwrap(),
1122
            "organizationalUnitName"
1123
        );
1124
        assert_eq!(
1125
            aes256_cbc_hmac_sha1.long_name().unwrap(),
1126
            "aes-256-cbc-hmac-sha1"
1127
        );
1128
        assert_eq!(
1129
            id_cmc_lrapopwitness.long_name().unwrap(),
1130
            "id-cmc-lraPOPWitness"
1131
        );
1132
        assert_eq!(
1133
            ms_ctl_sign.long_name().unwrap(),
1134
            "Microsoft Trust List Signing"
1135
        );
1136
        assert!(
1137
            undefined_nid.long_name().is_err(),
1138
            "undefined_nid should not return a valid value"
1139
        );
1140
    }
1141
1142
    #[test]
1143
    fn test_short_name_conversion() {
1144
        let common_name = Nid::COMMONNAME;
1145
        let organizational_unit_name = Nid::ORGANIZATIONALUNITNAME;
1146
        let aes256_cbc_hmac_sha1 = Nid::AES_256_CBC_HMAC_SHA1;
1147
        let id_cmc_lrapopwitness = Nid::ID_CMC_LRAPOPWITNESS;
1148
        let ms_ctl_sign = Nid::MS_CTL_SIGN;
1149
        let undefined_nid = Nid::from_raw(118);
1150
1151
        assert_eq!(common_name.short_name().unwrap(), "CN");
1152
        assert_eq!(organizational_unit_name.short_name().unwrap(), "OU");
1153
        assert_eq!(
1154
            aes256_cbc_hmac_sha1.short_name().unwrap(),
1155
            "AES-256-CBC-HMAC-SHA1"
1156
        );
1157
        assert_eq!(
1158
            id_cmc_lrapopwitness.short_name().unwrap(),
1159
            "id-cmc-lraPOPWitness"
1160
        );
1161
        assert_eq!(ms_ctl_sign.short_name().unwrap(), "msCTLSign");
1162
        assert!(
1163
            undefined_nid.short_name().is_err(),
1164
            "undefined_nid should not return a valid value"
1165
        );
1166
    }
1167
1168
    #[test]
1169
    fn test_create() {
1170
        let nid = Nid::create("1.2.3.4", "foo", "foobar").unwrap();
1171
        assert_eq!(nid.short_name().unwrap(), "foo");
1172
        assert_eq!(nid.long_name().unwrap(), "foobar");
1173
1174
        // Due to a bug in OpenSSL 3.1.0, this test crashes on Windows
1175
        if !cfg!(ossl310) {
1176
            let invalid_oid = Nid::create("invalid_oid", "invalid", "invalid");
1177
            assert!(
1178
                invalid_oid.is_err(),
1179
                "invalid_oid should not return a valid value"
1180
            );
1181
        }
1182
    }
1183
}