aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Cole <[email protected]>2014-12-10 22:09:20 -0500
committerChris Cole <[email protected]>2014-12-10 22:09:20 -0500
commitfb1c8152741272bf526bb17fffa69c37b39eaa17 (patch)
tree16d4d5bbbe874647eb2755da0845fe6d3693e4c6 /src
parentAdded mod_word. (diff)
parentMerge pull request #117 from Ummon/master (diff)
downloadrust-openssl-fb1c8152741272bf526bb17fffa69c37b39eaa17.tar.xz
rust-openssl-fb1c8152741272bf526bb17fffa69c37b39eaa17.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'src')
-rw-r--r--src/crypto/hmac.rs8
-rw-r--r--src/ssl/mod.rs9
-rw-r--r--src/x509/mod.rs8
3 files changed, 20 insertions, 5 deletions
diff --git a/src/crypto/hmac.rs b/src/crypto/hmac.rs
index a7a854b7..8096a948 100644
--- a/src/crypto/hmac.rs
+++ b/src/crypto/hmac.rs
@@ -61,6 +61,14 @@ impl HMAC {
}
}
+impl Drop for HMAC {
+ fn drop(&mut self) {
+ unsafe {
+ ffi::HMAC_CTX_cleanup(&mut self.ctx);
+ }
+ }
+}
+
#[cfg(test)]
mod tests {
use serialize::hex::FromHex;
diff --git a/src/ssl/mod.rs b/src/ssl/mod.rs
index d29d633e..6112bc8d 100644
--- a/src/ssl/mod.rs
+++ b/src/ssl/mod.rs
@@ -410,7 +410,14 @@ impl<S: Stream> SslStream<S> {
stream: stream,
ssl: Arc::new(ssl),
// Maximum TLS record size is 16k
- buf: Vec::from_elem(16 * 1024, 0u8)
+ // We're just using this as a buffer, so there's no reason to pay
+ // to memset it
+ buf: {
+ const CAP: uint = 16 * 1024;
+ let mut v = Vec::with_capacity(CAP);
+ unsafe { v.set_len(CAP); }
+ v
+ }
}
}
diff --git a/src/x509/mod.rs b/src/x509/mod.rs
index 86152ac4..a06fe4e1 100644
--- a/src/x509/mod.rs
+++ b/src/x509/mod.rs
@@ -145,15 +145,15 @@ impl<'a, T: AsStr<'a>> ToStr for Vec<T> {
/// use std::io::{File, Open, Write};
/// # use std::io::fs;
///
-/// use openssl::crypto::hash::SHA256;
-/// use openssl::x509::{DigitalSignature, X509Generator};
+/// use openssl::crypto::hash::HashType;
+/// use openssl::x509::{KeyUsage, X509Generator};
///
/// let gen = X509Generator::new()
/// .set_bitlength(2048)
/// .set_valid_period(365*2)
/// .set_CN("SuperMegaCorp Inc.")
-/// .set_sign_hash(SHA256)
-/// .set_usage(&[DigitalSignature]);
+/// .set_sign_hash(HashType::SHA256)
+/// .set_usage(&[KeyUsage::DigitalSignature]);
///
/// let (cert, pkey) = gen.generate().unwrap();
///