diff --git a/crypto-vala/src/srtp.vala b/crypto-vala/src/srtp.vala index c7f45da3..882a8edc 100644 --- a/crypto-vala/src/srtp.vala +++ b/crypto-vala/src/srtp.vala @@ -81,7 +81,7 @@ public class Session { case ErrorStatus.ok: break; default: - throw new Error.UNKNOWN(@"SRTP decrypt failed: $res"); + throw new Error.UNKNOWN(@"SRTCP decrypt failed: $res"); } uint8[] ret = new uint8[buf_use]; GLib.Memory.copy(ret, buf, buf_use); @@ -105,6 +105,7 @@ public class Session { policy.key = new uint8[key.length + salt.length]; Memory.copy(policy.key, key, key.length); Memory.copy(((uint8*)policy.key) + key.length, salt, salt.length); + policy.next = null; encrypt_context.add_stream(ref policy); has_encrypt = true; } @@ -115,6 +116,7 @@ public class Session { policy.key = new uint8[key.length + salt.length]; Memory.copy(policy.key, key, key.length); Memory.copy(((uint8*)policy.key) + key.length, salt, salt.length); + policy.next = null; decrypt_context.add_stream(ref policy); has_decrypt = true; } diff --git a/crypto-vala/vapi/libsrtp2.vapi b/crypto-vala/vapi/libsrtp2.vapi index c0c50c1c..f8f2d297 100644 --- a/crypto-vala/vapi/libsrtp2.vapi +++ b/crypto-vala/vapi/libsrtp2.vapi @@ -42,9 +42,11 @@ public struct Policy { public uint8[] key; public ulong num_master_keys; public ulong window_size; - public int allow_repeat_tx; + [CCode (ctype = "int")] + public bool allow_repeat_tx; [CCode (array_length_cname = "enc_xtn_hdr_count")] public int[] enc_xtn_hdr; + public Policy* next; } [CCode (cname = "srtp_crypto_policy_t")]