1
- use bytes:: BytesMut ;
1
+ use bytes:: { Bytes , BytesMut } ;
2
2
use criterion:: { criterion_group, criterion_main, Criterion } ;
3
3
use util:: Marshal ;
4
4
use webrtc_srtp:: { context:: Context , protection_profile:: ProtectionProfile } ;
5
5
6
+ const RAW_RTCP : Bytes = Bytes :: from_static ( & [
7
+ 0x81 , 0xc8 , 0x00 , 0x0b , 0xca , 0xfe , 0xba , 0xbe , 0xab , 0xab , 0xab , 0xab , 0xab , 0xab , 0xab ,
8
+ 0xab , 0xab , 0xab , 0xab , 0xab , 0xab , 0xab , 0xab , 0xab ,
9
+ ] ) ;
10
+
6
11
fn benchmark_encrypt_rtp_aes_128_cm_hmac_sha1 ( c : & mut Criterion ) {
7
12
let mut ctx = Context :: new (
8
13
& vec ! [
@@ -20,7 +25,7 @@ fn benchmark_encrypt_rtp_aes_128_cm_hmac_sha1(c: &mut Criterion) {
20
25
pld. extend_from_slice ( & [ i as u8 ] ) ;
21
26
}
22
27
23
- c. bench_function ( "Benchmark encrypt" , |b| {
28
+ c. bench_function ( "Benchmark RTP encrypt" , |b| {
24
29
let mut seq = 1 ;
25
30
b. iter_batched (
26
31
|| {
@@ -58,7 +63,7 @@ fn benchmark_decrypt_rtp_aes_128_cm_hmac_sha1(c: &mut Criterion) {
58
63
None ,
59
64
None ,
60
65
)
61
- . unwrap ( ) ;
66
+ . unwrap ( ) ;
62
67
63
68
let mut ctx = Context :: new (
64
69
& vec ! [
@@ -69,14 +74,14 @@ fn benchmark_decrypt_rtp_aes_128_cm_hmac_sha1(c: &mut Criterion) {
69
74
None ,
70
75
None ,
71
76
)
72
- . unwrap ( ) ;
77
+ . unwrap ( ) ;
73
78
74
79
let mut pld = BytesMut :: new ( ) ;
75
80
for i in 0 ..1200 {
76
81
pld. extend_from_slice ( & [ i as u8 ] ) ;
77
82
}
78
83
79
- c. bench_function ( "Benchmark decrypt" , |b| {
84
+ c. bench_function ( "Benchmark RTP decrypt" , |b| {
80
85
let mut seq = 1 ;
81
86
b. iter_batched (
82
87
|| {
@@ -96,15 +101,67 @@ fn benchmark_decrypt_rtp_aes_128_cm_hmac_sha1(c: &mut Criterion) {
96
101
seq += 1 ;
97
102
setup_ctx. encrypt_rtp ( & pkt. marshal ( ) . unwrap ( ) ) . unwrap ( )
98
103
} ,
99
- |encrypted| {
100
- ctx. decrypt_rtp ( & encrypted) . unwrap ( )
101
- } ,
104
+ |encrypted| ctx. decrypt_rtp ( & encrypted) . unwrap ( ) ,
102
105
criterion:: BatchSize :: LargeInput ,
103
106
) ;
104
107
} ) ;
105
108
}
106
109
110
+ fn benchmark_encrypt_rtcp_aes_128_cm_hmac_sha1 ( c : & mut Criterion ) {
111
+ let mut ctx = Context :: new (
112
+ & vec ! [
113
+ 96 , 180 , 31 , 4 , 119 , 137 , 128 , 252 , 75 , 194 , 252 , 44 , 63 , 56 , 61 , 55 ,
114
+ ] ,
115
+ & vec ! [ 247 , 26 , 49 , 94 , 99 , 29 , 79 , 94 , 5 , 111 , 252 , 216 , 62 , 195 ] ,
116
+ ProtectionProfile :: Aes128CmHmacSha1_80 ,
117
+ None ,
118
+ None ,
119
+ )
120
+ . unwrap ( ) ;
121
+
122
+ c. bench_function ( "Benchmark RTCP encrypt" , |b| {
123
+ b. iter ( || {
124
+ ctx. encrypt_rtcp ( & RAW_RTCP )
125
+ . unwrap ( ) ;
126
+ } ) ;
127
+ } ) ;
128
+ }
129
+
130
+ fn benchmark_decrypt_rtcp_aes_128_cm_hmac_sha1 ( c : & mut Criterion ) {
131
+ let encrypted = Context :: new (
132
+ & vec ! [
133
+ 96 , 180 , 31 , 4 , 119 , 137 , 128 , 252 , 75 , 194 , 252 , 44 , 63 , 56 , 61 , 55 ,
134
+ ] ,
135
+ & vec ! [ 247 , 26 , 49 , 94 , 99 , 29 , 79 , 94 , 5 , 111 , 252 , 216 , 62 , 195 ] ,
136
+ ProtectionProfile :: Aes128CmHmacSha1_80 ,
137
+ None ,
138
+ None ,
139
+ )
140
+ . unwrap ( )
141
+ . encrypt_rtcp ( & RAW_RTCP )
142
+ . unwrap ( ) ;
143
+
144
+ let mut ctx = Context :: new (
145
+ & vec ! [
146
+ 96 , 180 , 31 , 4 , 119 , 137 , 128 , 252 , 75 , 194 , 252 , 44 , 63 , 56 , 61 , 55 ,
147
+ ] ,
148
+ & vec ! [ 247 , 26 , 49 , 94 , 99 , 29 , 79 , 94 , 5 , 111 , 252 , 216 , 62 , 195 ] ,
149
+ ProtectionProfile :: Aes128CmHmacSha1_80 ,
150
+ None ,
151
+ None ,
152
+ )
153
+ . unwrap ( ) ;
107
154
155
+ c. bench_function ( "Benchmark RTCP decrypt" , |b| {
156
+ b. iter ( || ctx. decrypt_rtcp ( & encrypted) . unwrap ( ) ) ;
157
+ } ) ;
158
+ }
108
159
109
- criterion_group ! ( benches, benchmark_encrypt_rtp_aes_128_cm_hmac_sha1, benchmark_decrypt_rtp_aes_128_cm_hmac_sha1) ;
160
+ criterion_group ! (
161
+ benches,
162
+ benchmark_encrypt_rtp_aes_128_cm_hmac_sha1,
163
+ benchmark_decrypt_rtp_aes_128_cm_hmac_sha1,
164
+ benchmark_encrypt_rtcp_aes_128_cm_hmac_sha1,
165
+ benchmark_decrypt_rtcp_aes_128_cm_hmac_sha1
166
+ ) ;
110
167
criterion_main ! ( benches) ;
0 commit comments