Loading openssl/src/nid.rs +949 −938 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ impl Nid { pub fn as_raw(&self) -> c_int { self.0 } } pub const UNDEF: Nid = Nid(ffi::NID_undef); pub const ITU_T: Nid = Nid(ffi::NID_itu_t); Loading @@ -67,7 +66,8 @@ pub const DSAWITHSHA1: Nid = Nid(ffi::NID_dsaWithSHA1); pub const ANSI_X9_62: Nid = Nid(ffi::NID_ansi_X9_62); pub const X9_62_PRIME_FIELD: Nid = Nid(ffi::NID_X9_62_prime_field); pub const X9_62_CHARACTERISTIC_TWO_FIELD: Nid = Nid(ffi::NID_X9_62_characteristic_two_field); pub const X9_62_ID_CHARACTERISTIC_TWO_BASIS: Nid = Nid(ffi::NID_X9_62_id_characteristic_two_basis); pub const X9_62_ID_CHARACTERISTIC_TWO_BASIS: Nid = Nid(ffi::NID_X9_62_id_characteristic_two_basis); pub const X9_62_ONBASIS: Nid = Nid(ffi::NID_X9_62_onBasis); pub const X9_62_TPBASIS: Nid = Nid(ffi::NID_X9_62_tpBasis); pub const X9_62_PPBASIS: Nid = Nid(ffi::NID_X9_62_ppBasis); Loading Loading @@ -246,14 +246,18 @@ pub const ID_SMIME_AA_ETS_COMMITMENTTYPE: Nid = Nid(ffi::NID_id_smime_aa_ets_com pub const ID_SMIME_AA_ETS_SIGNERLOCATION: Nid = Nid(ffi::NID_id_smime_aa_ets_signerLocation); pub const ID_SMIME_AA_ETS_SIGNERATTR: Nid = Nid(ffi::NID_id_smime_aa_ets_signerAttr); pub const ID_SMIME_AA_ETS_OTHERSIGCERT: Nid = Nid(ffi::NID_id_smime_aa_ets_otherSigCert); pub const ID_SMIME_AA_ETS_CONTENTTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_contentTimestamp); pub const ID_SMIME_AA_ETS_CONTENTTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_contentTimestamp); pub const ID_SMIME_AA_ETS_CERTIFICATEREFS: Nid = Nid(ffi::NID_id_smime_aa_ets_CertificateRefs); pub const ID_SMIME_AA_ETS_REVOCATIONREFS: Nid = Nid(ffi::NID_id_smime_aa_ets_RevocationRefs); pub const ID_SMIME_AA_ETS_CERTVALUES: Nid = Nid(ffi::NID_id_smime_aa_ets_certValues); pub const ID_SMIME_AA_ETS_REVOCATIONVALUES: Nid = Nid(ffi::NID_id_smime_aa_ets_revocationValues); pub const ID_SMIME_AA_ETS_REVOCATIONVALUES: Nid = Nid(ffi::NID_id_smime_aa_ets_revocationValues); pub const ID_SMIME_AA_ETS_ESCTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_escTimeStamp); pub const ID_SMIME_AA_ETS_CERTCRLTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_certCRLTimestamp); pub const ID_SMIME_AA_ETS_ARCHIVETIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_archiveTimeStamp); pub const ID_SMIME_AA_ETS_CERTCRLTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_certCRLTimestamp); pub const ID_SMIME_AA_ETS_ARCHIVETIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_archiveTimeStamp); pub const ID_SMIME_AA_SIGNATURETYPE: Nid = Nid(ffi::NID_id_smime_aa_signatureType); pub const ID_SMIME_AA_DVCS_DVC: Nid = Nid(ffi::NID_id_smime_aa_dvcs_dvc); pub const ID_SMIME_ALG_ESDHWITH3DES: Nid = Nid(ffi::NID_id_smime_alg_ESDHwith3DES); Loading @@ -269,10 +273,13 @@ pub const ID_SMIME_SPQ_ETS_SQT_URI: Nid = Nid(ffi::NID_id_smime_spq_ets_sqt_uri) pub const ID_SMIME_SPQ_ETS_SQT_UNOTICE: Nid = Nid(ffi::NID_id_smime_spq_ets_sqt_unotice); pub const ID_SMIME_CTI_ETS_PROOFOFORIGIN: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfOrigin); pub const ID_SMIME_CTI_ETS_PROOFOFRECEIPT: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfReceipt); pub const ID_SMIME_CTI_ETS_PROOFOFDELIVERY: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfDelivery); pub const ID_SMIME_CTI_ETS_PROOFOFDELIVERY: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfDelivery); pub const ID_SMIME_CTI_ETS_PROOFOFSENDER: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfSender); pub const ID_SMIME_CTI_ETS_PROOFOFAPPROVAL: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfApproval); pub const ID_SMIME_CTI_ETS_PROOFOFCREATION: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfCreation); pub const ID_SMIME_CTI_ETS_PROOFOFAPPROVAL: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfApproval); pub const ID_SMIME_CTI_ETS_PROOFOFCREATION: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfCreation); pub const FRIENDLYNAME: Nid = Nid(ffi::NID_friendlyName); pub const LOCALKEYID: Nid = Nid(ffi::NID_localKeyID); pub const MS_CSP_NAME: Nid = Nid(ffi::NID_ms_csp_name); Loading Loading @@ -468,7 +475,8 @@ pub const CAREPOSITORY: Nid = Nid(ffi::NID_caRepository); pub const ID_PKIX_OCSP_BASIC: Nid = Nid(ffi::NID_id_pkix_OCSP_basic); pub const ID_PKIX_OCSP_NONCE: Nid = Nid(ffi::NID_id_pkix_OCSP_Nonce); pub const ID_PKIX_OCSP_CRLID: Nid = Nid(ffi::NID_id_pkix_OCSP_CrlID); pub const ID_PKIX_OCSP_ACCEPTABLERESPONSES: Nid = Nid(ffi::NID_id_pkix_OCSP_acceptableResponses); pub const ID_PKIX_OCSP_ACCEPTABLERESPONSES: Nid = Nid(ffi::NID_id_pkix_OCSP_acceptableResponses); pub const ID_PKIX_OCSP_NOCHECK: Nid = Nid(ffi::NID_id_pkix_OCSP_noCheck); pub const ID_PKIX_OCSP_ARCHIVECUTOFF: Nid = Nid(ffi::NID_id_pkix_OCSP_archiveCutoff); pub const ID_PKIX_OCSP_SERVICELOCATOR: Nid = Nid(ffi::NID_id_pkix_OCSP_serviceLocator); Loading Loading @@ -879,7 +887,8 @@ pub const CRYPTOPRO: Nid = Nid(ffi::NID_cryptopro); pub const CRYPTOCOM: Nid = Nid(ffi::NID_cryptocom); pub const ID_GOSTR3411_94_WITH_GOSTR3410_2001: Nid = Nid(ffi::NID_id_GostR3411_94_with_GostR3410_2001); pub const ID_GOSTR3411_94_WITH_GOSTR3410_94: Nid = Nid(ffi::NID_id_GostR3411_94_with_GostR3410_94); pub const ID_GOSTR3411_94_WITH_GOSTR3410_94: Nid = Nid(ffi::NID_id_GostR3411_94_with_GostR3410_94); pub const ID_GOSTR3411_94: Nid = Nid(ffi::NID_id_GostR3411_94); pub const ID_HMACGOSTR3411_94: Nid = Nid(ffi::NID_id_HMACGostR3411_94); pub const ID_GOSTR3410_2001: Nid = Nid(ffi::NID_id_GostR3410_2001); Loading @@ -894,7 +903,8 @@ pub const ID_GOST28147_89_CRYPTOPRO_KEYMESHING: Nid = Nid(ffi::NID_id_Gost28147_89_CryptoPro_KeyMeshing); pub const ID_GOST28147_89_NONE_KEYMESHING: Nid = Nid(ffi::NID_id_Gost28147_89_None_KeyMeshing); pub const ID_GOSTR3411_94_TESTPARAMSET: Nid = Nid(ffi::NID_id_GostR3411_94_TestParamSet); pub const ID_GOSTR3411_94_CRYPTOPROPARAMSET: Nid = Nid(ffi::NID_id_GostR3411_94_CryptoProParamSet); pub const ID_GOSTR3411_94_CRYPTOPROPARAMSET: Nid = Nid(ffi::NID_id_GostR3411_94_CryptoProParamSet); pub const ID_GOST28147_89_TESTPARAMSET: Nid = Nid(ffi::NID_id_Gost28147_89_TestParamSet); pub const ID_GOST28147_89_CRYPTOPRO_A_PARAMSET: Nid = Nid(ffi::NID_id_Gost28147_89_CryptoPro_A_ParamSet); Loading Loading @@ -980,3 +990,4 @@ pub const RC4_HMAC_MD5: Nid = Nid(ffi::NID_rc4_hmac_md5); pub const AES_128_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_128_cbc_hmac_sha1); pub const AES_192_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_192_cbc_hmac_sha1); pub const AES_256_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_256_cbc_hmac_sha1); } openssl/src/pkcs12.rs +7 −7 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ use pkey::{PKey, PKeyRef}; use error::ErrorStack; use x509::X509; use stack::Stack; use nid; use nid::Nid; foreign_type_and_impl_send_sync! { type CType = ffi::PKCS12; Loading Loading @@ -75,8 +75,8 @@ impl Pkcs12 { ffi::init(); Pkcs12Builder { nid_key: nid::UNDEF, //nid::PBE_WITHSHA1AND3_KEY_TRIPLEDES_CBC, nid_cert: nid::UNDEF, //nid::PBE_WITHSHA1AND40BITRC2_CBC, nid_key: Nid::UNDEF, //nid::PBE_WITHSHA1AND3_KEY_TRIPLEDES_CBC, nid_cert: Nid::UNDEF, //nid::PBE_WITHSHA1AND40BITRC2_CBC, iter: ffi::PKCS12_DEFAULT_ITER, mac_iter: ffi::PKCS12_DEFAULT_ITER, ca: None, Loading @@ -92,8 +92,8 @@ pub struct ParsedPkcs12 { } pub struct Pkcs12Builder { nid_key: nid::Nid, nid_cert: nid::Nid, nid_key: Nid, nid_cert: Nid, iter: c_int, mac_iter: c_int, ca: Option<Stack<X509>>, Loading @@ -101,13 +101,13 @@ pub struct Pkcs12Builder { impl Pkcs12Builder { /// The encryption algorithm that should be used for the key pub fn key_algorithm(&mut self, nid: nid::Nid) -> &mut Self { pub fn key_algorithm(&mut self, nid: Nid) -> &mut Self { self.nid_key = nid; self } /// The encryption algorithm that should be used for the cert pub fn cert_algorithm(&mut self, nid: nid::Nid) -> &mut Self { pub fn cert_algorithm(&mut self, nid: Nid) -> &mut Self { self.nid_cert = nid; self } Loading openssl/src/x509/extension.rs +24 −28 Original line number Diff line number Diff line use std::fmt::{self, Write}; use error::ErrorStack; use nid::{self, Nid}; use x509::{X509v3Context, X509Extension}; use nid::Nid; use x509::{X509Extension, X509v3Context}; /// Type-only version of the `Extension` enum. /// Loading Loading @@ -77,10 +77,10 @@ impl ExtensionType { #[deprecated(since = "0.9.7", note = "use X509Builder and X509ReqBuilder instead")] pub fn get_nid(&self) -> Option<Nid> { match self { &ExtensionType::KeyUsage => Some(nid::KEY_USAGE), &ExtensionType::ExtKeyUsage => Some(nid::EXT_KEY_USAGE), &ExtensionType::SubjectAltName => Some(nid::SUBJECT_ALT_NAME), &ExtensionType::IssuerAltName => Some(nid::ISSUER_ALT_NAME), &ExtensionType::KeyUsage => Some(Nid::KEY_USAGE), &ExtensionType::ExtKeyUsage => Some(Nid::EXT_KEY_USAGE), &ExtensionType::SubjectAltName => Some(Nid::SUBJECT_ALT_NAME), &ExtensionType::IssuerAltName => Some(Nid::ISSUER_ALT_NAME), &ExtensionType::OtherNid(nid) => Some(nid), &ExtensionType::OtherStr(_) => None, } Loading Loading @@ -112,22 +112,18 @@ impl ToString for Extension { match self { &Extension::KeyUsage(ref purposes) => join(purposes.iter(), ","), &Extension::ExtKeyUsage(ref purposes) => join(purposes.iter(), ","), &Extension::SubjectAltName(ref names) => { join( names.iter().map(|&(ref opt, ref val)| { opt.to_string() + ":" + &val }), &Extension::SubjectAltName(ref names) => join( names .iter() .map(|&(ref opt, ref val)| opt.to_string() + ":" + &val), ",", ) } &Extension::IssuerAltName(ref names) => { join( names.iter().map(|&(ref opt, ref val)| { opt.to_string() + ":" + &val }), ), &Extension::IssuerAltName(ref names) => join( names .iter() .map(|&(ref opt, ref val)| opt.to_string() + ":" + &val), ",", ) } ), &Extension::OtherNid(_, ref value) => value.clone(), &Extension::OtherStr(_, ref value) => value.clone(), } Loading Loading @@ -282,7 +278,7 @@ impl BasicConstraints { if let Some(pathlen) = self.pathlen { write!(value, ",pathlen:{}", pathlen).unwrap(); } X509Extension::new_nid(None, None, nid::BASIC_CONSTRAINTS, &value) X509Extension::new_nid(None, None, Nid::BASIC_CONSTRAINTS, &value) } } Loading Loading @@ -398,7 +394,7 @@ impl KeyUsage { append(&mut value, &mut first, self.crl_sign, "cRLSign"); append(&mut value, &mut first, self.encipher_only, "encipherOnly"); append(&mut value, &mut first, self.decipher_only, "decipherOnly"); X509Extension::new_nid(None, None, nid::KEY_USAGE, &value) X509Extension::new_nid(None, None, Nid::KEY_USAGE, &value) } } Loading Loading @@ -520,7 +516,7 @@ impl ExtendedKeyUsage { for other in &self.other { append(&mut value, &mut first, true, other); } X509Extension::new_nid(None, None, nid::EXT_KEY_USAGE, &value) X509Extension::new_nid(None, None, Nid::EXT_KEY_USAGE, &value) } } Loading @@ -543,7 +539,7 @@ impl SubjectKeyIdentifier { let mut first = true; append(&mut value, &mut first, self.critical, "critical"); append(&mut value, &mut first, true, "hash"); X509Extension::new_nid(None, Some(ctx), nid::SUBJECT_KEY_IDENTIFIER, &value) X509Extension::new_nid(None, Some(ctx), Nid::SUBJECT_KEY_IDENTIFIER, &value) } } Loading Loading @@ -591,7 +587,7 @@ impl AuthorityKeyIdentifier { Some(false) => append(&mut value, &mut first, true, "issuer"), None => {} } X509Extension::new_nid(None, Some(ctx), nid::AUTHORITY_KEY_IDENTIFIER, &value) X509Extension::new_nid(None, Some(ctx), Nid::AUTHORITY_KEY_IDENTIFIER, &value) } } Loading Loading @@ -655,7 +651,7 @@ impl SubjectAlternativeName { for name in &self.names { append(&mut value, &mut first, true, name); } X509Extension::new_nid(None, Some(ctx), nid::SUBJECT_ALT_NAME, &value) X509Extension::new_nid(None, Some(ctx), Nid::SUBJECT_ALT_NAME, &value) } } Loading openssl/src/x509/mod.rs +15 −27 Original line number Diff line number Diff line Loading @@ -13,30 +13,30 @@ use std::ptr; use std::slice; use std::str; use {cvt, cvt_p, cvt_n}; use asn1::{Asn1StringRef, Asn1Time, Asn1TimeRef, Asn1BitStringRef, Asn1IntegerRef, Asn1ObjectRef}; use {cvt, cvt_n, cvt_p}; use asn1::{Asn1BitStringRef, Asn1IntegerRef, Asn1ObjectRef, Asn1StringRef, Asn1Time, Asn1TimeRef}; use bio::MemBioSlice; use bn::{BigNum, MSB_MAYBE_ZERO}; use conf::ConfRef; use error::ErrorStack; use hash::MessageDigest; use nid::{self, Nid}; use nid::Nid; use pkey::{PKey, PKeyRef}; use stack::{Stack, StackRef, Stackable}; use string::OpensslString; use ssl::SslRef; #[cfg(ossl10x)] use ffi::{X509_set_notBefore, X509_set_notAfter, ASN1_STRING_data, X509_STORE_CTX_get_chain}; use ffi::{ASN1_STRING_data, X509_STORE_CTX_get_chain, X509_set_notAfter, X509_set_notBefore}; #[cfg(ossl110)] use ffi::{X509_set1_notBefore as X509_set_notBefore, X509_set1_notAfter as X509_set_notAfter, ASN1_STRING_get0_data as ASN1_STRING_data, X509_STORE_CTX_get0_chain as X509_STORE_CTX_get_chain}; use ffi::{ASN1_STRING_get0_data as ASN1_STRING_data, X509_STORE_CTX_get0_chain as X509_STORE_CTX_get_chain, X509_set1_notAfter as X509_set_notAfter, X509_set1_notBefore as X509_set_notBefore}; #[cfg(any(all(feature = "v102", ossl102), all(feature = "v110", ossl110)))] pub mod verify; use x509::extension::{ExtensionType, Extension}; use x509::extension::{Extension, ExtensionType}; pub mod extension; pub mod store; Loading Loading @@ -237,7 +237,7 @@ impl X509Generator { let mut name = X509Name::builder()?; if self.names.is_empty() { name.append_entry_by_nid(nid::COMMONNAME, "rust-openssl")?; name.append_entry_by_nid(Nid::COMMONNAME, "rust-openssl")?; } else { for &(ref key, ref value) in &self.names { name.append_entry_by_text(key, value)?; Loading @@ -252,12 +252,7 @@ impl X509Generator { let extension = match exttype.get_nid() { Some(nid) => { let ctx = builder.x509v3_context(None, None); X509Extension::new_nid( None, Some(&ctx), nid, &ext.to_string(), )? X509Extension::new_nid(None, Some(&ctx), nid, &ext.to_string())? } None => { let ctx = builder.x509v3_context(None, None); Loading Loading @@ -294,15 +289,11 @@ impl X509Generator { let exts = compat::X509_get0_extensions(cert.as_ptr()); if exts != ptr::null_mut() { cvt( ffi::X509_REQ_add_extensions(req.as_ptr(), exts as *mut _), )?; cvt(ffi::X509_REQ_add_extensions(req.as_ptr(), exts as *mut _))?; } let hash_fn = self.hash_type.as_ptr(); cvt( ffi::X509_REQ_sign(req.as_ptr(), p_key.as_ptr(), hash_fn), )?; cvt(ffi::X509_REQ_sign(req.as_ptr(), p_key.as_ptr(), hash_fn))?; Ok(req) } Loading Loading @@ -428,9 +419,7 @@ impl X509Builder { /// Adds an X509 extension value to the certificate. pub fn append_extension(&mut self, extension: X509Extension) -> Result<(), ErrorStack> { unsafe { cvt( ffi::X509_add_ext(self.0.as_ptr(), extension.as_ptr(), -1), )?; cvt(ffi::X509_add_ext(self.0.as_ptr(), extension.as_ptr(), -1))?; mem::forget(extension); Ok(()) } Loading Loading @@ -595,8 +584,8 @@ impl X509 { ffi::PEM_read_bio_X509(bio.as_ptr(), ptr::null_mut(), None, ptr::null_mut()); if r.is_null() { let err = ffi::ERR_peek_last_error(); if ffi::ERR_GET_LIB(err) == ffi::ERR_LIB_PEM && ffi::ERR_GET_REASON(err) == ffi::PEM_R_NO_START_LINE if ffi::ERR_GET_LIB(err) == ffi::ERR_LIB_PEM && ffi::ERR_GET_REASON(err) == ffi::PEM_R_NO_START_LINE { ffi::ERR_clear_error(); break; Loading Loading @@ -837,7 +826,6 @@ impl X509ReqBuilder { ffi::init(); cvt_p(ffi::X509_REQ_new()).map(|p| X509ReqBuilder(X509Req(p))) } } pub fn set_version(&mut self, version: i32) -> Result<(), ErrorStack> { Loading Loading
openssl/src/nid.rs +949 −938 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ impl Nid { pub fn as_raw(&self) -> c_int { self.0 } } pub const UNDEF: Nid = Nid(ffi::NID_undef); pub const ITU_T: Nid = Nid(ffi::NID_itu_t); Loading @@ -67,7 +66,8 @@ pub const DSAWITHSHA1: Nid = Nid(ffi::NID_dsaWithSHA1); pub const ANSI_X9_62: Nid = Nid(ffi::NID_ansi_X9_62); pub const X9_62_PRIME_FIELD: Nid = Nid(ffi::NID_X9_62_prime_field); pub const X9_62_CHARACTERISTIC_TWO_FIELD: Nid = Nid(ffi::NID_X9_62_characteristic_two_field); pub const X9_62_ID_CHARACTERISTIC_TWO_BASIS: Nid = Nid(ffi::NID_X9_62_id_characteristic_two_basis); pub const X9_62_ID_CHARACTERISTIC_TWO_BASIS: Nid = Nid(ffi::NID_X9_62_id_characteristic_two_basis); pub const X9_62_ONBASIS: Nid = Nid(ffi::NID_X9_62_onBasis); pub const X9_62_TPBASIS: Nid = Nid(ffi::NID_X9_62_tpBasis); pub const X9_62_PPBASIS: Nid = Nid(ffi::NID_X9_62_ppBasis); Loading Loading @@ -246,14 +246,18 @@ pub const ID_SMIME_AA_ETS_COMMITMENTTYPE: Nid = Nid(ffi::NID_id_smime_aa_ets_com pub const ID_SMIME_AA_ETS_SIGNERLOCATION: Nid = Nid(ffi::NID_id_smime_aa_ets_signerLocation); pub const ID_SMIME_AA_ETS_SIGNERATTR: Nid = Nid(ffi::NID_id_smime_aa_ets_signerAttr); pub const ID_SMIME_AA_ETS_OTHERSIGCERT: Nid = Nid(ffi::NID_id_smime_aa_ets_otherSigCert); pub const ID_SMIME_AA_ETS_CONTENTTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_contentTimestamp); pub const ID_SMIME_AA_ETS_CONTENTTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_contentTimestamp); pub const ID_SMIME_AA_ETS_CERTIFICATEREFS: Nid = Nid(ffi::NID_id_smime_aa_ets_CertificateRefs); pub const ID_SMIME_AA_ETS_REVOCATIONREFS: Nid = Nid(ffi::NID_id_smime_aa_ets_RevocationRefs); pub const ID_SMIME_AA_ETS_CERTVALUES: Nid = Nid(ffi::NID_id_smime_aa_ets_certValues); pub const ID_SMIME_AA_ETS_REVOCATIONVALUES: Nid = Nid(ffi::NID_id_smime_aa_ets_revocationValues); pub const ID_SMIME_AA_ETS_REVOCATIONVALUES: Nid = Nid(ffi::NID_id_smime_aa_ets_revocationValues); pub const ID_SMIME_AA_ETS_ESCTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_escTimeStamp); pub const ID_SMIME_AA_ETS_CERTCRLTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_certCRLTimestamp); pub const ID_SMIME_AA_ETS_ARCHIVETIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_archiveTimeStamp); pub const ID_SMIME_AA_ETS_CERTCRLTIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_certCRLTimestamp); pub const ID_SMIME_AA_ETS_ARCHIVETIMESTAMP: Nid = Nid(ffi::NID_id_smime_aa_ets_archiveTimeStamp); pub const ID_SMIME_AA_SIGNATURETYPE: Nid = Nid(ffi::NID_id_smime_aa_signatureType); pub const ID_SMIME_AA_DVCS_DVC: Nid = Nid(ffi::NID_id_smime_aa_dvcs_dvc); pub const ID_SMIME_ALG_ESDHWITH3DES: Nid = Nid(ffi::NID_id_smime_alg_ESDHwith3DES); Loading @@ -269,10 +273,13 @@ pub const ID_SMIME_SPQ_ETS_SQT_URI: Nid = Nid(ffi::NID_id_smime_spq_ets_sqt_uri) pub const ID_SMIME_SPQ_ETS_SQT_UNOTICE: Nid = Nid(ffi::NID_id_smime_spq_ets_sqt_unotice); pub const ID_SMIME_CTI_ETS_PROOFOFORIGIN: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfOrigin); pub const ID_SMIME_CTI_ETS_PROOFOFRECEIPT: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfReceipt); pub const ID_SMIME_CTI_ETS_PROOFOFDELIVERY: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfDelivery); pub const ID_SMIME_CTI_ETS_PROOFOFDELIVERY: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfDelivery); pub const ID_SMIME_CTI_ETS_PROOFOFSENDER: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfSender); pub const ID_SMIME_CTI_ETS_PROOFOFAPPROVAL: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfApproval); pub const ID_SMIME_CTI_ETS_PROOFOFCREATION: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfCreation); pub const ID_SMIME_CTI_ETS_PROOFOFAPPROVAL: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfApproval); pub const ID_SMIME_CTI_ETS_PROOFOFCREATION: Nid = Nid(ffi::NID_id_smime_cti_ets_proofOfCreation); pub const FRIENDLYNAME: Nid = Nid(ffi::NID_friendlyName); pub const LOCALKEYID: Nid = Nid(ffi::NID_localKeyID); pub const MS_CSP_NAME: Nid = Nid(ffi::NID_ms_csp_name); Loading Loading @@ -468,7 +475,8 @@ pub const CAREPOSITORY: Nid = Nid(ffi::NID_caRepository); pub const ID_PKIX_OCSP_BASIC: Nid = Nid(ffi::NID_id_pkix_OCSP_basic); pub const ID_PKIX_OCSP_NONCE: Nid = Nid(ffi::NID_id_pkix_OCSP_Nonce); pub const ID_PKIX_OCSP_CRLID: Nid = Nid(ffi::NID_id_pkix_OCSP_CrlID); pub const ID_PKIX_OCSP_ACCEPTABLERESPONSES: Nid = Nid(ffi::NID_id_pkix_OCSP_acceptableResponses); pub const ID_PKIX_OCSP_ACCEPTABLERESPONSES: Nid = Nid(ffi::NID_id_pkix_OCSP_acceptableResponses); pub const ID_PKIX_OCSP_NOCHECK: Nid = Nid(ffi::NID_id_pkix_OCSP_noCheck); pub const ID_PKIX_OCSP_ARCHIVECUTOFF: Nid = Nid(ffi::NID_id_pkix_OCSP_archiveCutoff); pub const ID_PKIX_OCSP_SERVICELOCATOR: Nid = Nid(ffi::NID_id_pkix_OCSP_serviceLocator); Loading Loading @@ -879,7 +887,8 @@ pub const CRYPTOPRO: Nid = Nid(ffi::NID_cryptopro); pub const CRYPTOCOM: Nid = Nid(ffi::NID_cryptocom); pub const ID_GOSTR3411_94_WITH_GOSTR3410_2001: Nid = Nid(ffi::NID_id_GostR3411_94_with_GostR3410_2001); pub const ID_GOSTR3411_94_WITH_GOSTR3410_94: Nid = Nid(ffi::NID_id_GostR3411_94_with_GostR3410_94); pub const ID_GOSTR3411_94_WITH_GOSTR3410_94: Nid = Nid(ffi::NID_id_GostR3411_94_with_GostR3410_94); pub const ID_GOSTR3411_94: Nid = Nid(ffi::NID_id_GostR3411_94); pub const ID_HMACGOSTR3411_94: Nid = Nid(ffi::NID_id_HMACGostR3411_94); pub const ID_GOSTR3410_2001: Nid = Nid(ffi::NID_id_GostR3410_2001); Loading @@ -894,7 +903,8 @@ pub const ID_GOST28147_89_CRYPTOPRO_KEYMESHING: Nid = Nid(ffi::NID_id_Gost28147_89_CryptoPro_KeyMeshing); pub const ID_GOST28147_89_NONE_KEYMESHING: Nid = Nid(ffi::NID_id_Gost28147_89_None_KeyMeshing); pub const ID_GOSTR3411_94_TESTPARAMSET: Nid = Nid(ffi::NID_id_GostR3411_94_TestParamSet); pub const ID_GOSTR3411_94_CRYPTOPROPARAMSET: Nid = Nid(ffi::NID_id_GostR3411_94_CryptoProParamSet); pub const ID_GOSTR3411_94_CRYPTOPROPARAMSET: Nid = Nid(ffi::NID_id_GostR3411_94_CryptoProParamSet); pub const ID_GOST28147_89_TESTPARAMSET: Nid = Nid(ffi::NID_id_Gost28147_89_TestParamSet); pub const ID_GOST28147_89_CRYPTOPRO_A_PARAMSET: Nid = Nid(ffi::NID_id_Gost28147_89_CryptoPro_A_ParamSet); Loading Loading @@ -980,3 +990,4 @@ pub const RC4_HMAC_MD5: Nid = Nid(ffi::NID_rc4_hmac_md5); pub const AES_128_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_128_cbc_hmac_sha1); pub const AES_192_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_192_cbc_hmac_sha1); pub const AES_256_CBC_HMAC_SHA1: Nid = Nid(ffi::NID_aes_256_cbc_hmac_sha1); }
openssl/src/pkcs12.rs +7 −7 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ use pkey::{PKey, PKeyRef}; use error::ErrorStack; use x509::X509; use stack::Stack; use nid; use nid::Nid; foreign_type_and_impl_send_sync! { type CType = ffi::PKCS12; Loading Loading @@ -75,8 +75,8 @@ impl Pkcs12 { ffi::init(); Pkcs12Builder { nid_key: nid::UNDEF, //nid::PBE_WITHSHA1AND3_KEY_TRIPLEDES_CBC, nid_cert: nid::UNDEF, //nid::PBE_WITHSHA1AND40BITRC2_CBC, nid_key: Nid::UNDEF, //nid::PBE_WITHSHA1AND3_KEY_TRIPLEDES_CBC, nid_cert: Nid::UNDEF, //nid::PBE_WITHSHA1AND40BITRC2_CBC, iter: ffi::PKCS12_DEFAULT_ITER, mac_iter: ffi::PKCS12_DEFAULT_ITER, ca: None, Loading @@ -92,8 +92,8 @@ pub struct ParsedPkcs12 { } pub struct Pkcs12Builder { nid_key: nid::Nid, nid_cert: nid::Nid, nid_key: Nid, nid_cert: Nid, iter: c_int, mac_iter: c_int, ca: Option<Stack<X509>>, Loading @@ -101,13 +101,13 @@ pub struct Pkcs12Builder { impl Pkcs12Builder { /// The encryption algorithm that should be used for the key pub fn key_algorithm(&mut self, nid: nid::Nid) -> &mut Self { pub fn key_algorithm(&mut self, nid: Nid) -> &mut Self { self.nid_key = nid; self } /// The encryption algorithm that should be used for the cert pub fn cert_algorithm(&mut self, nid: nid::Nid) -> &mut Self { pub fn cert_algorithm(&mut self, nid: Nid) -> &mut Self { self.nid_cert = nid; self } Loading
openssl/src/x509/extension.rs +24 −28 Original line number Diff line number Diff line use std::fmt::{self, Write}; use error::ErrorStack; use nid::{self, Nid}; use x509::{X509v3Context, X509Extension}; use nid::Nid; use x509::{X509Extension, X509v3Context}; /// Type-only version of the `Extension` enum. /// Loading Loading @@ -77,10 +77,10 @@ impl ExtensionType { #[deprecated(since = "0.9.7", note = "use X509Builder and X509ReqBuilder instead")] pub fn get_nid(&self) -> Option<Nid> { match self { &ExtensionType::KeyUsage => Some(nid::KEY_USAGE), &ExtensionType::ExtKeyUsage => Some(nid::EXT_KEY_USAGE), &ExtensionType::SubjectAltName => Some(nid::SUBJECT_ALT_NAME), &ExtensionType::IssuerAltName => Some(nid::ISSUER_ALT_NAME), &ExtensionType::KeyUsage => Some(Nid::KEY_USAGE), &ExtensionType::ExtKeyUsage => Some(Nid::EXT_KEY_USAGE), &ExtensionType::SubjectAltName => Some(Nid::SUBJECT_ALT_NAME), &ExtensionType::IssuerAltName => Some(Nid::ISSUER_ALT_NAME), &ExtensionType::OtherNid(nid) => Some(nid), &ExtensionType::OtherStr(_) => None, } Loading Loading @@ -112,22 +112,18 @@ impl ToString for Extension { match self { &Extension::KeyUsage(ref purposes) => join(purposes.iter(), ","), &Extension::ExtKeyUsage(ref purposes) => join(purposes.iter(), ","), &Extension::SubjectAltName(ref names) => { join( names.iter().map(|&(ref opt, ref val)| { opt.to_string() + ":" + &val }), &Extension::SubjectAltName(ref names) => join( names .iter() .map(|&(ref opt, ref val)| opt.to_string() + ":" + &val), ",", ) } &Extension::IssuerAltName(ref names) => { join( names.iter().map(|&(ref opt, ref val)| { opt.to_string() + ":" + &val }), ), &Extension::IssuerAltName(ref names) => join( names .iter() .map(|&(ref opt, ref val)| opt.to_string() + ":" + &val), ",", ) } ), &Extension::OtherNid(_, ref value) => value.clone(), &Extension::OtherStr(_, ref value) => value.clone(), } Loading Loading @@ -282,7 +278,7 @@ impl BasicConstraints { if let Some(pathlen) = self.pathlen { write!(value, ",pathlen:{}", pathlen).unwrap(); } X509Extension::new_nid(None, None, nid::BASIC_CONSTRAINTS, &value) X509Extension::new_nid(None, None, Nid::BASIC_CONSTRAINTS, &value) } } Loading Loading @@ -398,7 +394,7 @@ impl KeyUsage { append(&mut value, &mut first, self.crl_sign, "cRLSign"); append(&mut value, &mut first, self.encipher_only, "encipherOnly"); append(&mut value, &mut first, self.decipher_only, "decipherOnly"); X509Extension::new_nid(None, None, nid::KEY_USAGE, &value) X509Extension::new_nid(None, None, Nid::KEY_USAGE, &value) } } Loading Loading @@ -520,7 +516,7 @@ impl ExtendedKeyUsage { for other in &self.other { append(&mut value, &mut first, true, other); } X509Extension::new_nid(None, None, nid::EXT_KEY_USAGE, &value) X509Extension::new_nid(None, None, Nid::EXT_KEY_USAGE, &value) } } Loading @@ -543,7 +539,7 @@ impl SubjectKeyIdentifier { let mut first = true; append(&mut value, &mut first, self.critical, "critical"); append(&mut value, &mut first, true, "hash"); X509Extension::new_nid(None, Some(ctx), nid::SUBJECT_KEY_IDENTIFIER, &value) X509Extension::new_nid(None, Some(ctx), Nid::SUBJECT_KEY_IDENTIFIER, &value) } } Loading Loading @@ -591,7 +587,7 @@ impl AuthorityKeyIdentifier { Some(false) => append(&mut value, &mut first, true, "issuer"), None => {} } X509Extension::new_nid(None, Some(ctx), nid::AUTHORITY_KEY_IDENTIFIER, &value) X509Extension::new_nid(None, Some(ctx), Nid::AUTHORITY_KEY_IDENTIFIER, &value) } } Loading Loading @@ -655,7 +651,7 @@ impl SubjectAlternativeName { for name in &self.names { append(&mut value, &mut first, true, name); } X509Extension::new_nid(None, Some(ctx), nid::SUBJECT_ALT_NAME, &value) X509Extension::new_nid(None, Some(ctx), Nid::SUBJECT_ALT_NAME, &value) } } Loading
openssl/src/x509/mod.rs +15 −27 Original line number Diff line number Diff line Loading @@ -13,30 +13,30 @@ use std::ptr; use std::slice; use std::str; use {cvt, cvt_p, cvt_n}; use asn1::{Asn1StringRef, Asn1Time, Asn1TimeRef, Asn1BitStringRef, Asn1IntegerRef, Asn1ObjectRef}; use {cvt, cvt_n, cvt_p}; use asn1::{Asn1BitStringRef, Asn1IntegerRef, Asn1ObjectRef, Asn1StringRef, Asn1Time, Asn1TimeRef}; use bio::MemBioSlice; use bn::{BigNum, MSB_MAYBE_ZERO}; use conf::ConfRef; use error::ErrorStack; use hash::MessageDigest; use nid::{self, Nid}; use nid::Nid; use pkey::{PKey, PKeyRef}; use stack::{Stack, StackRef, Stackable}; use string::OpensslString; use ssl::SslRef; #[cfg(ossl10x)] use ffi::{X509_set_notBefore, X509_set_notAfter, ASN1_STRING_data, X509_STORE_CTX_get_chain}; use ffi::{ASN1_STRING_data, X509_STORE_CTX_get_chain, X509_set_notAfter, X509_set_notBefore}; #[cfg(ossl110)] use ffi::{X509_set1_notBefore as X509_set_notBefore, X509_set1_notAfter as X509_set_notAfter, ASN1_STRING_get0_data as ASN1_STRING_data, X509_STORE_CTX_get0_chain as X509_STORE_CTX_get_chain}; use ffi::{ASN1_STRING_get0_data as ASN1_STRING_data, X509_STORE_CTX_get0_chain as X509_STORE_CTX_get_chain, X509_set1_notAfter as X509_set_notAfter, X509_set1_notBefore as X509_set_notBefore}; #[cfg(any(all(feature = "v102", ossl102), all(feature = "v110", ossl110)))] pub mod verify; use x509::extension::{ExtensionType, Extension}; use x509::extension::{Extension, ExtensionType}; pub mod extension; pub mod store; Loading Loading @@ -237,7 +237,7 @@ impl X509Generator { let mut name = X509Name::builder()?; if self.names.is_empty() { name.append_entry_by_nid(nid::COMMONNAME, "rust-openssl")?; name.append_entry_by_nid(Nid::COMMONNAME, "rust-openssl")?; } else { for &(ref key, ref value) in &self.names { name.append_entry_by_text(key, value)?; Loading @@ -252,12 +252,7 @@ impl X509Generator { let extension = match exttype.get_nid() { Some(nid) => { let ctx = builder.x509v3_context(None, None); X509Extension::new_nid( None, Some(&ctx), nid, &ext.to_string(), )? X509Extension::new_nid(None, Some(&ctx), nid, &ext.to_string())? } None => { let ctx = builder.x509v3_context(None, None); Loading Loading @@ -294,15 +289,11 @@ impl X509Generator { let exts = compat::X509_get0_extensions(cert.as_ptr()); if exts != ptr::null_mut() { cvt( ffi::X509_REQ_add_extensions(req.as_ptr(), exts as *mut _), )?; cvt(ffi::X509_REQ_add_extensions(req.as_ptr(), exts as *mut _))?; } let hash_fn = self.hash_type.as_ptr(); cvt( ffi::X509_REQ_sign(req.as_ptr(), p_key.as_ptr(), hash_fn), )?; cvt(ffi::X509_REQ_sign(req.as_ptr(), p_key.as_ptr(), hash_fn))?; Ok(req) } Loading Loading @@ -428,9 +419,7 @@ impl X509Builder { /// Adds an X509 extension value to the certificate. pub fn append_extension(&mut self, extension: X509Extension) -> Result<(), ErrorStack> { unsafe { cvt( ffi::X509_add_ext(self.0.as_ptr(), extension.as_ptr(), -1), )?; cvt(ffi::X509_add_ext(self.0.as_ptr(), extension.as_ptr(), -1))?; mem::forget(extension); Ok(()) } Loading Loading @@ -595,8 +584,8 @@ impl X509 { ffi::PEM_read_bio_X509(bio.as_ptr(), ptr::null_mut(), None, ptr::null_mut()); if r.is_null() { let err = ffi::ERR_peek_last_error(); if ffi::ERR_GET_LIB(err) == ffi::ERR_LIB_PEM && ffi::ERR_GET_REASON(err) == ffi::PEM_R_NO_START_LINE if ffi::ERR_GET_LIB(err) == ffi::ERR_LIB_PEM && ffi::ERR_GET_REASON(err) == ffi::PEM_R_NO_START_LINE { ffi::ERR_clear_error(); break; Loading Loading @@ -837,7 +826,6 @@ impl X509ReqBuilder { ffi::init(); cvt_p(ffi::X509_REQ_new()).map(|p| X509ReqBuilder(X509Req(p))) } } pub fn set_version(&mut self, version: i32) -> Result<(), ErrorStack> { Loading