aboutsummaryrefslogtreecommitdiff
path: root/openssl-sys/src
diff options
context:
space:
mode:
authorRohit Aggarwal <[email protected]>2018-03-08 09:44:05 +0000
committerRohit Aggarwal <[email protected]>2018-03-08 09:44:05 +0000
commit2d6cd9eb1633ad80636d273f823b64d723a4be76 (patch)
tree35ddcb9c9c2c9d6d1b735a58fc3cf844b8aa3805 /openssl-sys/src
parentRemove the x509 module-level example (diff)
downloadrust-openssl-2d6cd9eb1633ad80636d273f823b64d723a4be76.tar.xz
rust-openssl-2d6cd9eb1633ad80636d273f823b64d723a4be76.zip
Exposed some of ECDSA functions
Diffstat (limited to 'openssl-sys/src')
-rw-r--r--openssl-sys/src/ossl10x.rs26
-rw-r--r--openssl-sys/src/ossl110.rs23
2 files changed, 49 insertions, 0 deletions
diff --git a/openssl-sys/src/ossl10x.rs b/openssl-sys/src/ossl10x.rs
index f8ff7193..78c76b6e 100644
--- a/openssl-sys/src/ossl10x.rs
+++ b/openssl-sys/src/ossl10x.rs
@@ -129,6 +129,12 @@ pub struct DSA {
}
#[repr(C)]
+pub struct ECDSA_SIG {
+ pub r: *mut BIGNUM,
+ pub s: *mut BIGNUM
+}
+
+#[repr(C)]
pub struct EVP_PKEY {
pub type_: c_int,
pub save_type: c_int,
@@ -823,6 +829,26 @@ extern "C" {
);
pub fn CRYPTO_set_id_callback(func: unsafe extern "C" fn() -> c_ulong);
+ pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
+ pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
+ pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, pp: *mut *mut c_uchar) -> c_int;
+ pub fn d2i_ECDSA_SIG(sig: *mut *mut ECDSA_SIG, pp: *mut *const c_uchar, len: c_long) -> *mut ECDSA_SIG;
+ pub fn ECDSA_size(eckey: *const ::EC_KEY) -> c_int;
+ pub fn ECDSA_sign(_type: c_int, dgst: *const c_uchar, dgstlen: c_int,
+ sig: *mut c_uchar, siglen: *mut c_uint, eckey: *mut ::EC_KEY) -> c_int;
+ pub fn ECDSA_do_sign(dgst: *const c_uchar, dgst_len: c_int, eckey: *mut ::EC_KEY) -> *mut ECDSA_SIG;
+ pub fn ECDSA_verify(_type: c_int, dgst: *const c_uchar, dgstlen: c_int,
+ sig: *const c_uchar, siglen: c_int, eckey: *mut ::EC_KEY) -> c_int;
+ pub fn ECDSA_do_verify(dgst: *const c_uchar, dgst_len: c_int,
+ sig: *const ECDSA_SIG, eckey: *mut ::EC_KEY) -> c_int;
+ pub fn ECDSA_do_sign_ex(dgst: *const c_uchar, dgstlen: c_int,
+ kinv: *const BIGNUM, rp: *const BIGNUM,
+ eckey: *mut ::EC_KEY) -> *mut ECDSA_SIG;
+ pub fn ECDSA_sign_setup(eckey: *mut ::EC_KEY, ctx: *mut ::BN_CTX, kinv: *mut *mut BIGNUM, rp: *mut *mut BIGNUM) -> c_int;
+ pub fn ECDSA_sign_ex(_type: c_int, dgst: *const c_uchar, dgstlen: c_int,
+ sig: *mut c_uchar, siglen: *mut c_uint,
+ kinv: *const BIGNUM, rp: *const BIGNUM, eckey: *mut ::EC_KEY) -> c_int;
+
pub fn ERR_load_crypto_strings();
pub fn RSA_generate_key(
diff --git a/openssl-sys/src/ossl110.rs b/openssl-sys/src/ossl110.rs
index b02c296d..d6f4eb99 100644
--- a/openssl-sys/src/ossl110.rs
+++ b/openssl-sys/src/ossl110.rs
@@ -8,6 +8,7 @@ pub enum BIO_METHOD {}
pub enum CRYPTO_EX_DATA {}
pub enum DH {}
pub enum DSA {}
+pub enum ECDSA_SIG {}
pub enum EVP_CIPHER {}
pub enum EVP_MD_CTX {}
pub enum EVP_PKEY {}
@@ -363,4 +364,26 @@ extern "C" {
) -> *mut PKCS12;
pub fn X509_REQ_get_version(req: *const X509_REQ) -> c_long;
pub fn X509_REQ_get_subject_name(req: *const X509_REQ) -> *mut ::X509_NAME;
+
+ pub fn ECDSA_SIG_new() -> *mut ECDSA_SIG;
+ pub fn ECDSA_SIG_free(sig: *mut ECDSA_SIG);
+ pub fn ECDSA_SIG_get0(sig: *const ECDSA_SIG, pr: *mut *const BIGNUM, ps: *mut *const BIGNUM);
+ pub fn ECDSA_SIG_set0(sig: *mut ECDSA_SIG, pr: *mut BIGNUM, ps: *mut BIGNUM) -> c_int;
+ pub fn i2d_ECDSA_SIG(sig: *const ECDSA_SIG, pp: *mut *mut c_uchar) -> c_int;
+ pub fn d2i_ECDSA_SIG(sig: *mut *mut ECDSA_SIG, pp: *mut *const c_uchar, len: c_long) -> *mut ECDSA_SIG;
+ pub fn ECDSA_size(eckey: *const ::EC_KEY) -> c_int;
+ pub fn ECDSA_sign(_type: c_int, dgst: *const c_uchar, dgstlen: c_int,
+ sig: *mut c_uchar, siglen: *mut c_uint, eckey: *mut ::EC_KEY) -> c_int;
+ pub fn ECDSA_do_sign(dgst: *const c_uchar, dgst_len: c_int, eckey: *mut ::EC_KEY) -> *mut ECDSA_SIG;
+ pub fn ECDSA_verify(_type: c_int, dgst: *const c_uchar, dgstlen: c_int,
+ sig: *const c_uchar, siglen: c_int, eckey: *mut ::EC_KEY) -> c_int;
+ pub fn ECDSA_do_verify(dgst: *const c_uchar, dgst_len: c_int,
+ sig: *const ECDSA_SIG, eckey: *mut ::EC_KEY) -> c_int;
+ pub fn ECDSA_do_sign_ex(dgst: *const c_uchar, dgstlen: c_int,
+ kinv: *const BIGNUM, rp: *const BIGNUM,
+ eckey: *mut ::EC_KEY) -> *mut ECDSA_SIG;
+ pub fn ECDSA_sign_setup(eckey: *mut ::EC_KEY, ctx: *mut ::BN_CTX, kinv: *mut *mut BIGNUM, rp: *mut *mut BIGNUM) -> c_int;
+ pub fn ECDSA_sign_ex(_type: c_int, dgst: *const c_uchar, dgstlen: c_int,
+ sig: *mut c_uchar, siglen: *mut c_uint,
+ kinv: *const BIGNUM, rp: *const BIGNUM, eckey: *mut ::EC_KEY) -> c_int;
}