srtp.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License 2.0 (the "License"). You may not use
  5. * this file except in compliance with the License. You can obtain a copy
  6. * in the file LICENSE in the source distribution or at
  7. * https://www.openssl.org/source/license.html
  8. */
  9. /*
  10. * DTLS code by Eric Rescorla <ekr@rtfm.com>
  11. *
  12. * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc.
  13. */
  14. #ifndef OPENSSL_SRTP_H
  15. # define OPENSSL_SRTP_H
  16. # pragma once
  17. # include <openssl/macros.h>
  18. # ifndef OPENSSL_NO_DEPRECATED_3_0
  19. # define HEADER_D1_SRTP_H
  20. # endif
  21. # include <openssl/ssl.h>
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. # define SRTP_AES128_CM_SHA1_80 0x0001
  26. # define SRTP_AES128_CM_SHA1_32 0x0002
  27. # define SRTP_AES128_F8_SHA1_80 0x0003
  28. # define SRTP_AES128_F8_SHA1_32 0x0004
  29. # define SRTP_NULL_SHA1_80 0x0005
  30. # define SRTP_NULL_SHA1_32 0x0006
  31. /* AEAD SRTP protection profiles from RFC 7714 */
  32. # define SRTP_AEAD_AES_128_GCM 0x0007
  33. # define SRTP_AEAD_AES_256_GCM 0x0008
  34. /* DOUBLE AEAD SRTP protection profiles from RFC 8723 */
  35. # define SRTP_DOUBLE_AEAD_AES_128_GCM_AEAD_AES_128_GCM 0x0009
  36. # define SRTP_DOUBLE_AEAD_AES_256_GCM_AEAD_AES_256_GCM 0x000A
  37. /* ARIA SRTP protection profiles from RFC 8269 */
  38. # define SRTP_ARIA_128_CTR_HMAC_SHA1_80 0x000B
  39. # define SRTP_ARIA_128_CTR_HMAC_SHA1_32 0x000C
  40. # define SRTP_ARIA_256_CTR_HMAC_SHA1_80 0x000D
  41. # define SRTP_ARIA_256_CTR_HMAC_SHA1_32 0x000E
  42. # define SRTP_AEAD_ARIA_128_GCM 0x000F
  43. # define SRTP_AEAD_ARIA_256_GCM 0x0010
  44. # ifndef OPENSSL_NO_SRTP
  45. __owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles);
  46. __owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles);
  47. __owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl);
  48. __owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s);
  49. # endif
  50. #ifdef __cplusplus
  51. }
  52. #endif
  53. #endif