blob: 95bd892f9cfb90b2cfa1f550138e431887854350 [file] [log] [blame]
Harald Alvestrand0d018412021-11-04 13:52:311/*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef API_CRYPTO_PARAMS_H_
12#define API_CRYPTO_PARAMS_H_
13
14#include <string>
15
Niels Möllerf1d822b2022-06-07 11:58:2716#include "absl/strings/string_view.h"
17
Harald Alvestrand0d018412021-11-04 13:52:3118namespace cricket {
19
20// Parameters for SRTP negotiation, as described in RFC 4568.
21// TODO(benwright) - Rename to SrtpCryptoParams as these only apply to SRTP and
22// not generic crypto parameters for WebRTC.
23struct CryptoParams {
24 CryptoParams() : tag(0) {}
25 CryptoParams(int t,
Niels Möllerf1d822b2022-06-07 11:58:2726 absl::string_view cs,
27 absl::string_view kp,
28 absl::string_view sp)
Harald Alvestrand0d018412021-11-04 13:52:3129 : tag(t), cipher_suite(cs), key_params(kp), session_params(sp) {}
30
31 bool Matches(const CryptoParams& params) const {
32 return (tag == params.tag && cipher_suite == params.cipher_suite);
33 }
34
35 int tag;
36 std::string cipher_suite;
37 std::string key_params;
38 std::string session_params;
39};
40
41} // namespace cricket
42
43#endif // API_CRYPTO_PARAMS_H_