blob: 34906ea0efa9b2eff9ef3ca0a2784b2ac5682883 [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)
Philipp Hancke55b89a82023-08-01 09:34:0529 : tag(t), crypto_suite(cs), key_params(kp), session_params(sp) {}
Harald Alvestrand0d018412021-11-04 13:52:3130
31 bool Matches(const CryptoParams& params) const {
Philipp Hancke55b89a82023-08-01 09:34:0532 return (tag == params.tag && crypto_suite == params.crypto_suite);
Harald Alvestrand0d018412021-11-04 13:52:3133 }
34
35 int tag;
Philipp Hancke55b89a82023-08-01 09:34:0536 std::string crypto_suite;
Harald Alvestrand0d018412021-11-04 13:52:3137 std::string key_params;
38 std::string session_params;
39};
40
41} // namespace cricket
42
43#endif // API_CRYPTO_PARAMS_H_