From: spdfrk1 Date: Mon, 4 Aug 2014 21:07:59 +0000 (+0200) Subject: Started prepare for merge X-Git-Tag: v4.1~1659 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac2e3d0d83adf54bc4beb5cf6cb67f6a96b72027;p=thirdparty%2Ftvheadend.git Started prepare for merge --- diff --git a/Makefile b/Makefile index a4c42ca4c..340b13430 100644 --- a/Makefile +++ b/Makefile @@ -292,10 +292,16 @@ FFDECSA-$(CONFIG_CWC) = yes endif ifeq ($(FFDECSA-yes),yes) +SRCS-yes += src/descrambler/ffdecsa/ffdecsa_interface.c \ +src/descrambler/ffdecsa/ffdecsa_int.c +SRCS-${CONFIG_MMX} += src/descrambler/ffdecsa/ffdecsa_mmx.c +SRCS-${CONFIG_SSE2} += src/descrambler/ffdecsa/ffdecsa_sse2.c +${BUILDDIR}/src/descrambler/ffdecsa/ffdecsa_mmx.o : CFLAGS += -mmmx +${BUILDDIR}/src/descrambler/ffdecsa/ffdecsa_sse2.o : CFLAGS += -msse2 +endif + SRCS-yes += src/descrambler/libaesdec/libaesdec_interface.c \ src/descrambler/libaesdec/libaesdec.c -${BUILDDIR}/src/descrambler/libaesdec/libaesdec.o : CFLAGS += -msse2 -endif # File bundles SRCS-${CONFIG_BUNDLE} += bundle.c diff --git a/src/descrambler/libaesdec/libaesdec.h b/src/descrambler/libaesdec/libaesdec.h index 91e4fae9a..3c7999d6c 100755 --- a/src/descrambler/libaesdec/libaesdec.h +++ b/src/descrambler/libaesdec/libaesdec.h @@ -8,14 +8,14 @@ #ifndef LIBAESDEC_H_ #define LIBAESDEC_H_ -void libaesdec_init(void); -int get_internal_parallelism(void); -int get_suggested_cluster_size(void); -void * get_key_struct(void); -void free_key_struct(void *keys); -void set_even_control_word(void *keys, const unsigned char *even); -void set_odd_control_word(void *keys, const unsigned char *odd); -int decrypt_packets(void *keys, unsigned char **cluster); +void libaes_init(void); +int libaes_get_internal_parallelism(void); +int libaes_get_suggested_cluster_size(void); +void * libaes_get_key_struct(void); +void libaes_free_key_struct(void *keys); +void libaes_set_even_control_word(void *keys, const unsigned char *even); +void libaes_set_odd_control_word(void *keys, const unsigned char *odd); +int libaes_decrypt_packets(void *keys, unsigned char **cluster); // -- alloc & free the key structure void *aes_get_key_struct(void); diff --git a/src/descrambler/libaesdec/libaesdec_interface.c b/src/descrambler/libaesdec/libaesdec_interface.c index 1631cdd98..18af6c2a8 100755 --- a/src/descrambler/libaesdec/libaesdec_interface.c +++ b/src/descrambler/libaesdec/libaesdec_interface.c @@ -18,34 +18,34 @@ #include "libaesdec.h" -void libaesdec_init(void) { +void libaes_init(void) { tvhlog(LOG_INFO, "CSA", "Using AES descrambling"); } -int get_internal_parallelism(void) { +int libaes_get_internal_parallelism(void) { return 0; } -int get_suggested_cluster_size(void) { +int libaes_get_suggested_cluster_size(void) { return 1; } void * -get_key_struct(void) { +libaes_get_key_struct(void) { return aes_get_key_struct(); } -void free_key_struct(void *keys) { +void libaes_free_key_struct(void *keys) { aes_free_key_struct(keys); } -void set_even_control_word(void *keys, const unsigned char *even) { +void libaes_set_even_control_word(void *keys, const unsigned char *even) { aes_set_even_control_word(keys, even); } -void set_odd_control_word(void *keys, const unsigned char *odd) { +void libaes_set_odd_control_word(void *keys, const unsigned char *odd) { aes_set_odd_control_word(keys, odd); } -int decrypt_packets(void *keys, unsigned char **cluster) { +int libaes_decrypt_packets(void *keys, unsigned char **cluster) { aes_decrypt_packet(keys, cluster[0]); return 1; } diff --git a/src/descrambler/tvhcsa.c b/src/descrambler/tvhcsa.c index 75e65e39a..5300d3d29 100644 --- a/src/descrambler/tvhcsa.c +++ b/src/descrambler/tvhcsa.c @@ -28,7 +28,7 @@ static void tvhcsa_aes_descramble ( tvhcsa_t *csa, struct mpegts_service *s, const uint8_t *tsb ) { - /* Not Implemented Yet */ + aes_decrypt_packet(csa->csa_aes_keys, (unsigned char *)tsb); } static void @@ -183,7 +183,7 @@ void tvhcsa_set_key_even( tvhcsa_t *csa, const uint8_t *even ) #endif break; case DESCRAMBLER_AES: - /* Not Yet Implemented */ + aes_set_even_control_word(csa->csa_aes_keys, even); break; default: assert(0); @@ -202,7 +202,7 @@ void tvhcsa_set_key_odd( tvhcsa_t *csa, const uint8_t *odd ) #endif break; case DESCRAMBLER_AES: - /* Not Yet Implemented */ + aes_set_even_control_word(csa->csa_aes_keys, odd); break; default: assert(0); diff --git a/src/descrambler/tvhcsa.h b/src/descrambler/tvhcsa.h index cc58231ec..d84c6b41b 100644 --- a/src/descrambler/tvhcsa.h +++ b/src/descrambler/tvhcsa.h @@ -32,6 +32,8 @@ struct elementary_stream; #include "ffdecsa/FFdecsa.h" #endif +#include "libaesdec/libaesdec.h" + typedef struct tvhcsa {