oRTP  0.18.0
include/ortp/ortp_srtp.h
00001 /*
00002   The oRTP library is an RTP (Realtime Transport Protocol - rfc3550) stack.
00003   Copyright (C) 2001  Simon MORLAT simon.morlat@linphone.org
00004 
00005   This library is free software; you can redistribute it and/or
00006   modify it under the terms of the GNU Lesser General Public
00007   License as published by the Free Software Foundation; either
00008   version 2.1 of the License, or (at your option) any later version.
00009 
00010   This library is distributed in the hope that it will be useful,
00011   but WITHOUT ANY WARRANTY; without even the implied warranty of
00012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013   Lesser General Public License for more details.
00014 
00015   You should have received a copy of the GNU Lesser General Public
00016   License along with this library; if not, write to the Free Software
00017   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 */
00019 
00020 #ifndef ortp_srtp_h
00021 #define ortp_srtp_h
00022 
00023 #ifdef HAVE_SRTP
00024 #ifndef ANDROID
00025 #include <srtp/srtp.h>
00026 #else
00027 // Android doesn't use make install
00028 #include <srtp.h>
00029 #endif
00030 #else
00031 
00032 typedef  void* srtp_t;
00033 typedef int err_status_t;
00034 typedef int srtp_policy_t;
00035 
00036 #endif
00037 
00038 #include <ortp/rtpsession.h>
00039 
00040 /*srtp defines all this stuff*/
00041 #undef PACKAGE_BUGREPORT
00042 #undef PACKAGE_NAME
00043 #undef PACKAGE_STRING
00044 #undef PACKAGE_TARNAME
00045 #undef PACKAGE_VERSION
00046 
00047 #ifdef __cplusplus
00048 extern "C"{
00049 #endif
00050 
00051 enum ortp_srtp_crypto_suite_t {
00052         AES_128_SHA1_80 = 1,
00053         AES_128_SHA1_32,
00054         AES_128_NO_AUTH,
00055         NO_CIPHER_SHA1_80
00056 };
00057 
00058 err_status_t ortp_srtp_init(void);
00059 err_status_t ortp_srtp_create(srtp_t *session, const srtp_policy_t *policy);
00060 err_status_t ortp_srtp_dealloc(srtp_t session);
00061 err_status_t ortp_srtp_add_stream(srtp_t session, const srtp_policy_t *policy);
00062 err_status_t ortp_crypto_get_random(uint8_t *tmp, int size);
00063 bool_t ortp_srtp_supported(void);
00064 
00065 int srtp_transport_new(srtp_t srtp, RtpTransport **rtpt, RtpTransport **rtcpt );
00066 
00067 srtp_t ortp_srtp_create_configure_session(enum ortp_srtp_crypto_suite_t suite, uint32_t ssrc, const char* snd_key, const char* rcv_key);
00068 #ifdef __cplusplus
00069 }
00070 #endif
00071 
00072 #endif