diff --git a/daemon/crypto.c b/daemon/crypto.c index be6632ab3..ef9a7dade 100644 --- a/daemon/crypto.c +++ b/daemon/crypto.c @@ -43,15 +43,61 @@ static int null_crypt_rtcp(struct crypto_context *c, struct rtcp_packet *r, str /* all lengths are in bytes */ struct crypto_suite __crypto_suites[] = { { - .name = "AES_CM_128_HMAC_SHA1_80", - .dtls_name = "SRTP_AES128_CM_SHA1_80", + .name = "AEAD_AES_256_GCM", + .dtls_name = "SRTP_AEAD_AES_256_GCM", + .master_key_len = 32, + .master_salt_len = 12, + .session_key_len = 32, + .session_salt_len = 12, + .srtp_lifetime = 1ULL << 48, + .srtcp_lifetime = 1ULL << 31, + .kernel_cipher = REC_AEAD_AES_GCM_256, + .kernel_hmac = REH_NULL, + .srtp_auth_tag = 0, + .srtcp_auth_tag = 0, + .srtp_auth_key_len = 0, + .srtcp_auth_key_len = 0, + .encrypt_rtp = aes_gcm_encrypt_rtp, + .decrypt_rtp = aes_gcm_decrypt_rtp, + .encrypt_rtcp = aes_gcm_encrypt_rtcp, + .decrypt_rtcp = aes_gcm_decrypt_rtcp, + .session_key_init = aes_gcm_session_key_init, + .session_key_cleanup = evp_session_key_cleanup, + .aead_evp = EVP_aes_256_gcm, + }, + { + .name = "AEAD_AES_128_GCM", + .dtls_name = "SRTP_AEAD_AES_128_GCM", .master_key_len = 16, - .master_salt_len = 14, + .master_salt_len = 12, .session_key_len = 16, + .session_salt_len = 12, + .srtp_lifetime = 1ULL << 48, + .srtcp_lifetime = 1ULL << 31, + .kernel_cipher = REC_AEAD_AES_GCM_128, + .kernel_hmac = REH_NULL, + .srtp_auth_tag = 0, + .srtcp_auth_tag = 0, + .srtp_auth_key_len = 0, + .srtcp_auth_key_len = 0, + .encrypt_rtp = aes_gcm_encrypt_rtp, + .decrypt_rtp = aes_gcm_decrypt_rtp, + .encrypt_rtcp = aes_gcm_encrypt_rtcp, + .decrypt_rtcp = aes_gcm_decrypt_rtcp, + .session_key_init = aes_gcm_session_key_init, + .session_key_cleanup = evp_session_key_cleanup, + .aead_evp = EVP_aes_128_gcm, + }, + { + .name = "AES_256_CM_HMAC_SHA1_80", + //.dtls_name = "SRTP_AES128_CM_SHA1_80", + .master_key_len = 32, + .master_salt_len = 14, + .session_key_len = 32, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, - .kernel_cipher = REC_AES_CM_128, + .kernel_cipher = REC_AES_CM_256, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 10, .srtcp_auth_tag = 10, @@ -67,15 +113,15 @@ struct crypto_suite __crypto_suites[] = { .session_key_cleanup = evp_session_key_cleanup, }, { - .name = "AES_CM_128_HMAC_SHA1_32", - .dtls_name = "SRTP_AES128_CM_SHA1_32", - .master_key_len = 16, + .name = "AES_256_CM_HMAC_SHA1_32", + //.dtls_name = "SRTP_AES128_CM_SHA1_32", + .master_key_len = 32, .master_salt_len = 14, - .session_key_len = 16, + .session_key_len = 32, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, - .kernel_cipher = REC_AES_CM_128, + .kernel_cipher = REC_AES_CM_256, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 4, .srtcp_auth_tag = 10, @@ -139,15 +185,15 @@ struct crypto_suite __crypto_suites[] = { .session_key_cleanup = evp_session_key_cleanup, }, { - .name = "AES_256_CM_HMAC_SHA1_80", - //.dtls_name = "SRTP_AES128_CM_SHA1_80", - .master_key_len = 32, + .name = "AES_CM_128_HMAC_SHA1_80", + .dtls_name = "SRTP_AES128_CM_SHA1_80", + .master_key_len = 16, .master_salt_len = 14, - .session_key_len = 32, + .session_key_len = 16, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, - .kernel_cipher = REC_AES_CM_256, + .kernel_cipher = REC_AES_CM_128, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 10, .srtcp_auth_tag = 10, @@ -163,15 +209,15 @@ struct crypto_suite __crypto_suites[] = { .session_key_cleanup = evp_session_key_cleanup, }, { - .name = "AES_256_CM_HMAC_SHA1_32", - //.dtls_name = "SRTP_AES128_CM_SHA1_32", - .master_key_len = 32, + .name = "AES_CM_128_HMAC_SHA1_32", + .dtls_name = "SRTP_AES128_CM_SHA1_32", + .master_key_len = 16, .master_salt_len = 14, - .session_key_len = 32, + .session_key_len = 16, .session_salt_len = 14, .srtp_lifetime = 1ULL << 48, .srtcp_lifetime = 1ULL << 31, - .kernel_cipher = REC_AES_CM_256, + .kernel_cipher = REC_AES_CM_128, .kernel_hmac = REH_HMAC_SHA1, .srtp_auth_tag = 4, .srtcp_auth_tag = 10, @@ -186,52 +232,6 @@ struct crypto_suite __crypto_suites[] = { .session_key_init = aes_cm_session_key_init, .session_key_cleanup = evp_session_key_cleanup, }, - { - .name = "AEAD_AES_128_GCM", - .dtls_name = "SRTP_AEAD_AES_128_GCM", - .master_key_len = 16, - .master_salt_len = 12, - .session_key_len = 16, - .session_salt_len = 12, - .srtp_lifetime = 1ULL << 48, - .srtcp_lifetime = 1ULL << 31, - .kernel_cipher = REC_AEAD_AES_GCM_128, - .kernel_hmac = REH_NULL, - .srtp_auth_tag = 0, - .srtcp_auth_tag = 0, - .srtp_auth_key_len = 0, - .srtcp_auth_key_len = 0, - .encrypt_rtp = aes_gcm_encrypt_rtp, - .decrypt_rtp = aes_gcm_decrypt_rtp, - .encrypt_rtcp = aes_gcm_encrypt_rtcp, - .decrypt_rtcp = aes_gcm_decrypt_rtcp, - .session_key_init = aes_gcm_session_key_init, - .session_key_cleanup = evp_session_key_cleanup, - .aead_evp = EVP_aes_128_gcm, - }, - { - .name = "AEAD_AES_256_GCM", - .dtls_name = "SRTP_AEAD_AES_256_GCM", - .master_key_len = 32, - .master_salt_len = 12, - .session_key_len = 32, - .session_salt_len = 12, - .srtp_lifetime = 1ULL << 48, - .srtcp_lifetime = 1ULL << 31, - .kernel_cipher = REC_AEAD_AES_GCM_256, - .kernel_hmac = REH_NULL, - .srtp_auth_tag = 0, - .srtcp_auth_tag = 0, - .srtp_auth_key_len = 0, - .srtcp_auth_key_len = 0, - .encrypt_rtp = aes_gcm_encrypt_rtp, - .decrypt_rtp = aes_gcm_decrypt_rtp, - .encrypt_rtcp = aes_gcm_encrypt_rtcp, - .decrypt_rtcp = aes_gcm_decrypt_rtcp, - .session_key_init = aes_gcm_session_key_init, - .session_key_cleanup = evp_session_key_cleanup, - .aead_evp = EVP_aes_256_gcm, - }, { .name = "F8_128_HMAC_SHA1_80", // .dtls_name = "SRTP_AES128_F8_SHA1_80", diff --git a/t/auto-daemon-tests.pl b/t/auto-daemon-tests.pl index ca3e96f2e..0224ea56c 100755 --- a/t/auto-daemon-tests.pl +++ b/t/auto-daemon-tests.pl @@ -3814,14 +3814,14 @@ a=fmtp:101 0-16 a=rtpmap:8 PCMA/8000 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -3859,14 +3859,14 @@ a=fmtp:101 0-16 a=rtpmap:8 PCMA/8000 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -3910,14 +3910,14 @@ a=fmtp:101 0-16 a=rtpmap:8 PCMA/8000 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -3941,7 +3941,7 @@ a=rtpmap:8 PCMA/8000 a=direction:both a=sendonly a=rtcp:40445 -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:05sglrIFGQuJpqOblofVYYh+PF93dGyOjFW6Q934 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:05sglrIFGQuJpqOblofVYYh+PF93dGyOjFW6Q934 -------------------------------------- v=0 o=- 810178487 810178487 IN IP4 0.0.0.0 @@ -3987,14 +3987,14 @@ a=fmtp:101 0-16 a=rtpmap:8 PCMA/8000 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -4019,7 +4019,7 @@ a=rtpmap:8 PCMA/8000 a=direction:both a=sendonly a=rtcp:40445 -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:05sglrIFGQuJpqOblofVYYh+PF93dGyOjFW6Q934 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:05sglrIFGQuJpqOblofVYYh+PF93dGyOjFW6Q934 -------------------------------------- v=0 o=- 810178487 810178487 IN IP4 0.0.0.0 @@ -4065,14 +4065,14 @@ a=fmtp:101 0-16 a=rtpmap:8 PCMA/8000 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -4097,7 +4097,7 @@ a=rtpmap:8 PCMA/8000 a=direction:both a=sendonly a=rtcp:40445 -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:05sglrIFGQuJpqOblofVYYh+PF93dGyOjFW6Q934 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:05sglrIFGQuJpqOblofVYYh+PF93dGyOjFW6Q934 -------------------------------------- v=0 o=- 810178487 810178487 IN IP4 0.0.0.0 @@ -4438,14 +4438,14 @@ a=rtpmap:0 PCMU/8000 a=sendrecv a=rtcp:PORT a=rtcp-mux -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -4556,14 +4556,14 @@ a=rtpmap:0 PCMU/8000 a=sendrecv a=rtcp:PORT a=rtcp-mux -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -4651,7 +4651,7 @@ SDP new_call; -(undef, undef, $srtp_key_a) = offer('RTP to SRTP switch (and SRTP re-invite)', +(undef, undef, undef, undef, undef, undef, undef, undef, $srtp_key_a) = offer('RTP to SRTP switch (and SRTP re-invite)', { "transport-protocol" => "RTP/SAVP", "ICE" => "remove", "rtcp-mux" => [ "demux" ], DTLS => 'off', "replace" => [ "origin", "session-connection" ], @@ -4689,14 +4689,14 @@ a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:1 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:2 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:4 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:5 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:6 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -4726,7 +4726,7 @@ a=silenceSupp:off - - - - a=mptime:20 - a=oldmediaip:10.50.3.218 a=ptime:20 -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph ---------------------------------- v=0 o=- 1889691184267178502 1889691184267178505 IN IP4 203.0.113.1 @@ -4785,18 +4785,18 @@ a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:$srtp_key_a -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:$srtp_key_a a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S -a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:12 NULL_HMAC_SHA1_32 inline:CRYPTO128 +a=crypto:9 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:10 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:11 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:12 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:13 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:14 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 +a=crypto:15 F8_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:16 F8_128_HMAC_SHA1_32 inline:CRYPTO128 +a=crypto:17 NULL_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:18 NULL_HMAC_SHA1_32 inline:CRYPTO128 a=ptime:20 SDP @@ -4822,7 +4822,7 @@ a=silenceSupp:off - - - - a=mptime:20 - a=oldmediaip:10.50.3.218 a=ptime:20 -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph ---------------------------------- v=0 o=- 1889691184267178502 1889691184267178505 IN IP4 203.0.113.1 @@ -4868,7 +4868,7 @@ a=silenceSupp:off - - - - a=mptime:20 - a=oldmediaip:10.50.3.218 a=ptime:20 -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph ---------------------------------- v=0 o=- 1889691184267178502 1889691184267178505 IN IP4 203.0.113.1 @@ -4885,18 +4885,18 @@ a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv a=rtcp:PORT -a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph -a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 -a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 -a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:7 AES_CM_128_HMAC_SHA1_80 inline:zC6Ea9EK/7YmDM79CK+TAnNXTI1pVmZuCMjUPMph a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S -a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 -a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 -a=crypto:12 NULL_HMAC_SHA1_32 inline:CRYPTO128 +a=crypto:9 AEAD_AES_128_GCM inline:CRYPTO128S +a=crypto:10 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 +a=crypto:11 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 +a=crypto:12 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:13 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:14 AES_CM_128_HMAC_SHA1_32 inline:CRYPTO128 +a=crypto:15 F8_128_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:16 F8_128_HMAC_SHA1_32 inline:CRYPTO128 +a=crypto:17 NULL_HMAC_SHA1_80 inline:CRYPTO128 +a=crypto:18 NULL_HMAC_SHA1_32 inline:CRYPTO128 a=ptime:20 SDP @@ -4949,12 +4949,12 @@ a=sendrecv a=rtcp:PORT a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:QjnnaukLn7iwASAs0YLzPUplJkjOhTZK2dvOwo6c a=crypto:2 AES_CM_128_HMAC_SHA1_32 inline:1YiOLFFcF/OlCpW7u3fmSx1YllphIgh2cER3DWU3 -a=crypto:3 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 -a=crypto:4 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 +a=crypto:3 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:4 AEAD_AES_128_GCM inline:CRYPTO128S a=crypto:5 AES_256_CM_HMAC_SHA1_80 inline:CRYPTO256 a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:CRYPTO256 -a=crypto:7 AEAD_AES_128_GCM inline:CRYPTO128S -a=crypto:8 AEAD_AES_256_GCM inline:CRYPTO256S +a=crypto:7 AES_192_CM_HMAC_SHA1_80 inline:CRYPTO192 +a=crypto:8 AES_192_CM_HMAC_SHA1_32 inline:CRYPTO192 a=crypto:9 F8_128_HMAC_SHA1_80 inline:CRYPTO128 a=crypto:10 F8_128_HMAC_SHA1_32 inline:CRYPTO128 a=crypto:11 NULL_HMAC_SHA1_80 inline:CRYPTO128 @@ -5166,7 +5166,7 @@ rtpe_req('delete', "delete", { 'from-tag' => ft() }); ($sock_a, $sock_b) = new_call([qw(198.51.100.1 3328)], [qw(198.51.100.3 3330)]); -($port_a, undef, $srtp_key_a) = offer('reg SRTP offer, accept, diff suite', +($port_a, undef, undef, undef, undef, undef, undef, undef, $srtp_key_a) = offer('reg SRTP offer, accept, diff suite', { ICE => 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off' }, < 'remove', replace => ['origin'], DTLS => 'off', OSRTP => ['offer'] }, < 'remove', replace => ['origin'], DTLS => 'off', OSRTP => ['offer'], 'transport protocol' => 'RTP/AVP'}, <