nrfxlib API 3.3.99
Loading...
Searching...
No Matches
ocrypto_srtp.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 - 2025 Nordic Semiconductor ASA
3 * Copyright (c) since 2013 Oberon microsystems AG
4 *
5 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
6 */
7
8
15#ifndef OCRYPTO_SRTP_H
16#define OCRYPTO_SRTP_H
17
18#include <stddef.h>
19#include <stdint.h>
20
21#include "ocrypto_aes_key.h"
22
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28
32#define ocrypto_srtp_AUTH_KEY_SIZE (20)
33
37#define ocrypto_srtp_SALT_SIZE (14)
38
42#define ocrypto_srtp_MAX_KEY_SIZE (ocrypto_aes256_KEY_BYTES)
43
47typedef struct {
51 uint32_t key_size;
52
56 uint32_t tag_size;
57
61 uint8_t encr_key[ocrypto_srtp_MAX_KEY_SIZE];
62
67 uint8_t auth_key[ocrypto_srtp_AUTH_KEY_SIZE];
68
73 uint8_t salt_key[ocrypto_srtp_SALT_SIZE];
74} ocrypto_srtp_ctx;
89 ocrypto_srtp_ctx *srtp_ctx,
90 ocrypto_srtp_ctx *srtcp_ctx,
91 const uint8_t *key,
92 uint32_t key_size,
93 const uint8_t *salt,
94 uint32_t tag_size,
95 uint32_t ssrc);
96
111 const ocrypto_srtp_ctx *srtp_ctx,
112 uint8_t *packet,
113 const uint8_t *data_bytes,
114 size_t num_header_bytes,
115 size_t num_data_bytes,
116 uint32_t index);
117
128 const ocrypto_srtp_ctx *srtp_ctx,
129 uint8_t *data,
130 const uint8_t *packet_bytes,
131 size_t num_packet_bytes,
132 uint32_t index);
133
144 const ocrypto_srtp_ctx *srtp_ctx,
145 uint8_t *tag,
146 const uint8_t *bytes,
147 size_t num_bytes,
148 uint32_t index);
149
163 const ocrypto_srtp_ctx *srtp_ctx,
164 const uint8_t *tag,
165 const uint8_t *bytes,
166 size_t num_bytes,
167 uint32_t index);
168
169#ifdef __cplusplus
170}
171#endif
172
173#endif
Declaration of AES key sizes.
int ocrypto_srtp_verify_authentication(const ocrypto_srtp_ctx *srtp_ctx, const uint8_t *tag, const uint8_t *bytes, size_t num_bytes, uint32_t index)
#define ocrypto_srtp_MAX_KEY_SIZE
Definition ocrypto_srtp.h:42
void ocrypto_srtp_authenticate(const ocrypto_srtp_ctx *srtp_ctx, uint8_t *tag, const uint8_t *bytes, size_t num_bytes, uint32_t index)
void ocrypto_srtp_decrypt(const ocrypto_srtp_ctx *srtp_ctx, uint8_t *data, const uint8_t *packet_bytes, size_t num_packet_bytes, uint32_t index)
#define ocrypto_srtp_AUTH_KEY_SIZE
Definition ocrypto_srtp.h:32
#define ocrypto_srtp_SALT_SIZE
Definition ocrypto_srtp.h:37
void ocrypto_srtp_setup_ctx(ocrypto_srtp_ctx *srtp_ctx, ocrypto_srtp_ctx *srtcp_ctx, const uint8_t *key, uint32_t key_size, const uint8_t *salt, uint32_t tag_size, uint32_t ssrc)
void ocrypto_srtp_encrypt(const ocrypto_srtp_ctx *srtp_ctx, uint8_t *packet, const uint8_t *data_bytes, size_t num_header_bytes, size_t num_data_bytes, uint32_t index)