aboutsummaryrefslogtreecommitdiff
path: root/openssl-sys/src/x509v3.rs
diff options
context:
space:
mode:
Diffstat (limited to 'openssl-sys/src/x509v3.rs')
-rw-r--r--openssl-sys/src/x509v3.rs92
1 files changed, 92 insertions, 0 deletions
diff --git a/openssl-sys/src/x509v3.rs b/openssl-sys/src/x509v3.rs
new file mode 100644
index 00000000..81203526
--- /dev/null
+++ b/openssl-sys/src/x509v3.rs
@@ -0,0 +1,92 @@
+use libc::*;
+
+use *;
+
+pub enum CONF_METHOD {}
+
+pub const GEN_OTHERNAME: c_int = 0;
+pub const GEN_EMAIL: c_int = 1;
+pub const GEN_DNS: c_int = 2;
+pub const GEN_X400: c_int = 3;
+pub const GEN_DIRNAME: c_int = 4;
+pub const GEN_EDIPARTY: c_int = 5;
+pub const GEN_URI: c_int = 6;
+pub const GEN_IPADD: c_int = 7;
+pub const GEN_RID: c_int = 8;
+
+#[repr(C)]
+pub struct GENERAL_NAME {
+ pub type_: c_int,
+ // FIXME should be a union
+ pub d: *mut c_void,
+}
+
+stack!(stack_st_GENERAL_NAME);
+
+extern "C" {
+ pub fn GENERAL_NAME_free(name: *mut GENERAL_NAME);
+}
+
+#[cfg(any(ossl102, libressl261))]
+pub const X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT: c_uint = 0x1;
+#[cfg(any(ossl102, libressl261))]
+pub const X509_CHECK_FLAG_NO_WILDCARDS: c_uint = 0x2;
+#[cfg(any(ossl102, libressl261))]
+pub const X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS: c_uint = 0x4;
+#[cfg(any(ossl102, libressl261))]
+pub const X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS: c_uint = 0x8;
+#[cfg(any(ossl102, libressl261))]
+pub const X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS: c_uint = 0x10;
+#[cfg(ossl110)]
+pub const X509_CHECK_FLAG_NEVER_CHECK_SUBJECT: c_uint = 0x20;
+
+cfg_if! {
+ if #[cfg(ossl110)] {
+ extern "C" {
+ pub fn X509V3_EXT_nconf_nid(
+ conf: *mut CONF,
+ ctx: *mut X509V3_CTX,
+ ext_nid: c_int,
+ value: *const c_char,
+ ) -> *mut X509_EXTENSION;
+ pub fn X509V3_EXT_nconf(
+ conf: *mut CONF,
+ ctx: *mut X509V3_CTX,
+ name: *const c_char,
+ value: *const c_char,
+ ) -> *mut X509_EXTENSION;
+ }
+ } else {
+ extern "C" {
+ pub fn X509V3_EXT_nconf_nid(
+ conf: *mut CONF,
+ ctx: *mut X509V3_CTX,
+ ext_nid: c_int,
+ value: *mut c_char,
+ ) -> *mut X509_EXTENSION;
+ pub fn X509V3_EXT_nconf(
+ conf: *mut CONF,
+ ctx: *mut X509V3_CTX,
+ name: *mut c_char,
+ value: *mut c_char,
+ ) -> *mut X509_EXTENSION;
+ }
+ }
+}
+
+extern "C" {
+ pub fn X509_check_issued(issuer: *mut X509, subject: *mut X509) -> c_int;
+
+ pub fn X509V3_set_nconf(ctx: *mut X509V3_CTX, conf: *mut CONF);
+
+ pub fn X509V3_set_ctx(
+ ctx: *mut X509V3_CTX,
+ issuer: *mut X509,
+ subject: *mut X509,
+ req: *mut X509_REQ,
+ crl: *mut X509_CRL,
+ flags: c_int,
+ );
+
+ pub fn X509_get1_ocsp(x: *mut X509) -> *mut stack_st_OPENSSL_STRING;
+}