Skip to content

Commit

Permalink
Replace sha1 dependency with sha-1 (actix#1258)
Browse files Browse the repository at this point in the history
* Replace sha1 dependency with sha-1

This other crate is being maintained, and it offers better performances
when using the `asm` feature (especially [on
AArch64](RustCrypto/hashes#97)).

* Update CHANGES.md with the sha-1 migration

* Add a test for hash_key()
  • Loading branch information
linkmauve authored and JohnTitor committed Jan 10, 2020
1 parent e66312b commit abb462e
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
6 changes: 6 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changes

## [2.0.NEXT] - 2020-01-xx

### Changed

* Use `sha-1` crate instead of unmaintained `sha1` crate

## [2.0.0] - 2019-12-25

### Changed
Expand Down
2 changes: 1 addition & 1 deletion actix-http/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ rand = "0.7"
regex = "1.3"
serde = "1.0"
serde_json = "1.0"
sha1 = "0.6"
sha-1 = "0.8"
slab = "0.4"
serde_urlencoded = "0.6.1"
time = "0.1.42"
Expand Down
13 changes: 10 additions & 3 deletions actix-http/src/ws/proto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -207,12 +207,13 @@ static WS_GUID: &str = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";

// TODO: hash is always same size, we dont need String
pub fn hash_key(key: &[u8]) -> String {
use sha1::Digest;
let mut hasher = sha1::Sha1::new();

hasher.update(key);
hasher.update(WS_GUID.as_bytes());
hasher.input(key);
hasher.input(WS_GUID.as_bytes());

base64::encode(&hasher.digest().bytes())
base64::encode(hasher.result().as_ref())
}

#[cfg(test)]
Expand Down Expand Up @@ -277,6 +278,12 @@ mod test {
assert_eq!(format!("{}", OpCode::Bad), "BAD");
}

#[test]
fn test_hash_key() {
let hash = hash_key(b"hello actix-web");
assert_eq!(&hash, "cR1dlyUUJKp0s/Bel25u5TgvC3E=");
}

#[test]
fn closecode_from_u16() {
assert_eq!(CloseCode::from(1000u16), CloseCode::Normal);
Expand Down

0 comments on commit abb462e

Please sign in to comment.