str0m-openssl 0.3.0

OpenSSL backend for str0m WebRTC
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! OpenSSL SHA-256 implementation.

use str0m_proto::crypto::Sha256Provider;

/// OpenSSL-based SHA-256 provider.
#[derive(Debug)]
pub struct OsslSha256Provider;

impl Sha256Provider for OsslSha256Provider {
    fn sha256(&self, data: &[u8]) -> [u8; 32] {
        use openssl::hash::{MessageDigest, hash};
        let digest = hash(MessageDigest::sha256(), data).expect("SHA-256 hash");
        let mut result = [0u8; 32];
        result.copy_from_slice(&digest);
        result
    }
}