libSRTP 2.6.0
crypto_types.h
1/*
2 * crypto_types.h
3 *
4 * constants for cipher types and auth func types
5 *
6 * David A. McGrew
7 * Cisco Systems, Inc.
8 */
9/*
10 *
11 * Copyright(c) 2001-2017 Cisco Systems, Inc.
12 * All rights reserved.
13 *
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions
16 * are met:
17 *
18 * Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 *
21 * Redistributions in binary form must reproduce the above
22 * copyright notice, this list of conditions and the following
23 * disclaimer in the documentation and/or other materials provided
24 * with the distribution.
25 *
26 * Neither the name of the Cisco Systems, Inc. nor the names of its
27 * contributors may be used to endorse or promote products derived
28 * from this software without specific prior written permission.
29 *
30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
31 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
32 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
33 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
34 * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
35 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
36 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
37 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
40 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
41 * OF THE POSSIBILITY OF SUCH DAMAGE.
42 *
43 */
44
45#ifndef SRTP_CRYPTO_TYPES_H
46#define SRTP_CRYPTO_TYPES_H
47
48/*
49 * The null cipher performs no encryption.
50 *
51 * The SRTP_NULL_CIPHER leaves its inputs unaltered, during both the
52 * encryption and decryption operations. This cipher can be chosen
53 * to indicate that no encryption is to be performed.
54 */
55#define SRTP_NULL_CIPHER 0
56
57/*
58 * AES-128 Integer Counter Mode (AES ICM)
59 *
60 * AES-128 ICM is the variant of counter mode that is used by
61 * Secure RTP. This cipher uses a 16-octet key concatenated with a
62 * 14-octet offset (or salt) value.
63 */
64#define SRTP_AES_ICM_128 1
65
66/*
67 * AES-192 Integer Counter Mode (AES ICM)
68 *
69 * AES-128 ICM is the variant of counter mode that is used by
70 * Secure RTP. This cipher uses a 24-octet key concatenated with a
71 * 14-octet offset (or salt) value.
72 */
73#define SRTP_AES_ICM_192 4
74
75/*
76 * AES-256 Integer Counter Mode (AES ICM)
77 *
78 * AES-128 ICM is the variant of counter mode that is used by
79 * Secure RTP. This cipher uses a 32-octet key concatenated with a
80 * 14-octet offset (or salt) value.
81 */
82#define SRTP_AES_ICM_256 5
83
84/*
85 * AES-128_GCM Galois Counter Mode (AES GCM)
86 *
87 * AES-128 GCM is the variant of galois counter mode that is used by
88 * Secure RTP. This cipher uses a 16-octet key.
89 */
90#define SRTP_AES_GCM_128 6
91
92/*
93 * AES-256_GCM Galois Counter Mode (AES GCM)
94 *
95 * AES-256 GCM is the variant of galois counter mode that is used by
96 * Secure RTP. This cipher uses a 32-octet key.
97 */
98#define SRTP_AES_GCM_256 7
99
100/*
101 * The null authentication function performs no authentication.
102 *
103 * The NULL_AUTH function does nothing, and can be selected to indicate
104 * that authentication should not be performed.
105 */
106#define SRTP_NULL_AUTH 0
107
108/*
109 * HMAC-SHA1
110 *
111 * SRTP_HMAC_SHA1 implements the Hash-based MAC using the NIST Secure
112 * Hash Algorithm version 1 (SHA1).
113 */
114#define SRTP_HMAC_SHA1 3
115
116#endif /* SRTP_CRYPTO_TYPES_H */